更改在 makefile 中调用的编译器

Change compiler called in makefile

我有一个 make 文件,目前使用 cmake 来编译一组源文件,但我想更改它以使用 intel 的 c 编译器。我可以将所有 cmake 更改为 icc 还是...这将如何完成?

下面是原样的 make 文件,它来自字节币的加密挖掘守护程序。

all: all-release

cmake-debug:
    mkdir -p build/debug
    cd build/debug && cmake -D CMAKE_BUILD_TYPE=Debug ../..

build-debug: cmake-debug
    cd build/debug && $(MAKE)

test-debug: build-debug
    cd build/debug && $(MAKE) test

all-debug: build-debug

cmake-release:
    mkdir -p build/release
    cd build/release && cmake -D CMAKE_BUILD_TYPE=Release ../..

build-release: cmake-release
    cd build/release && $(MAKE)

test-release: build-release
    cd build/release && $(MAKE) test

all-release: build-release

clean:
    rm -rf build

tags:
    ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ src contrib tests/gtest

.PHONY: all cmake-debug build-debug test-debug all-debug cmake-release build-release test-release all-release clean tags

我可以 post 它在正常构建后在 /build 中创建的其他文件,如果这有帮助的话,但我想我必须做的任何过程来更改编译器对于每个 MAKE 都是相同的文件。

否则,其余的源文件可以在这里找到:

https://github.com/amjuarez/bytecoin

我是运行Ubuntu14.04.

提前致谢!

您在第一次调用 CMake 时使用带有 -DCMAKE_TOOLCHAIN_FILE=path/to/filetoolchain.txt 文件指定 CMake 的工具链设置,生成生成文件:

cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=<path_to>/toolchain.txt

应该有

这样的条目
set(CMAKE_C_COMPILER /<your-toolchain-path>/gcc)
set(CMAKE_CXX_COMPILER /<your-toolchain-path>/g++)

toolchain.txt.

通常 CXX=<mycompiler> cmake 应该做你想做的事。或者你可以修改项目的工具链文件,假设你想永久地进行更改。

这是我运行 cmake 以使用 clang 和 clang++ 构建 llvm/clang 的脚本:

CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release\ 
-DLLVM_ENABLE_ASSERTIONS=1  -DLLVM_TARGETS_TO_BUILD=X86 ../llvm