gpt4 book ai didi

cmake - 如何在 CMake 中指定编译器?

转载 作者:行者123 更新时间:2023-12-04 10:23:03 24 4
gpt4 key购买 nike

我想使用 IAR 编译器。我注意到 CMake 已经有一堆关于这个编译器的文件:

https://github.com/jevinskie/cmake/blob/master/Modules/Compiler/IAR.cmake

从我读到的常见解决方案是在我的 CMakeLists.txt 中手动指定所有工具链:

set(CMAKE_C_COMPILER iccarm)
set(CMAKE_CPP_COMPILER iccarm)

CMake 如何将这些定义与“Modules/Compiler/IAR.cmake”联系起来?

我以为我只需要做
include("Modules/Compiler/IAR.cmake")

指定 IAR 编译器的正确方法是什么?

当我做
cmake .

它仍然尝试使用 gcc而不是我的 IAR 编译器。为什么?

最佳答案

要选择特定的编译器,您有多种解决方案,如 CMake wiki 中所述。 :
方法一:使用环境变量
对于 C 和 C++,设置 CCCXX环境变量。此方法不保证适用于所有生成器。 (具体来说,如果您尝试设置 Xcode 的 GCC_VERSION ,则此方法会混淆 Xcode。)
例如:

CC=gcc-4.2 CXX=/usr/bin/g++-4.2 cmake -G "Your Generator" path/to/your/source
方法二:使用 cmake -D
设置合适的 CMAKE_FOO_COMPILER使用 cmake -D 在命令行上将变量转换为有效的编译器名称或完整路径.
例如:
cmake -G "Your Generator" -D CMAKE_C_COMPILER=gcc-4.2 -D CMAKE_CXX_COMPILER=g++-4.2 path/to/your/source
方法三(避免):使用 set()
设置合适的 CMAKE_FOO_COMPILER使用 set() 将变量转换为列表文件中的有效编译器名称或完整路径.这必须在设置任何语言之前完成(即:在任何 project()enable_language() 命令之前)。
例如:
set(CMAKE_C_COMPILER "gcc-4.2")
set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.2")

project("YourProjectName")
维基没有提供为什么应该避免第三种方法的原因......

关于cmake - 如何在 CMake 中指定编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45933732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com