更改在 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/file
的 toolchain.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
我有一个 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/file
的 toolchain.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