我想使用 IAR 编译器。我注意到 CMake 已经有一堆关于这个编译器的文件:
https://github.com/jevinskie/cmake/blob/master/Modules/Compiler/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 维基 https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#how-do-i-use-a-different-compiler:
方法一:使用环境变量
对于 C 和 C++,设置CC
and CXX
环境变量。不保证此方法适用于所有生成器。 (具体来说,如果您尝试设置 XcodeGCC_VERSION
,这个方法会让 Xcode 感到困惑。)
例如:
CC=gcc-4.2 CXX=/usr/bin/g++-4.2 cmake -G "Your Generator" path/to/your/source
方法2:使用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
方法3(避免):使用set()
设置适当的CMAKE_FOO_COMPILER
变量到有效的编译器名称或列表文件中的完整路径,使用set()
。这必须在设置任何语言之前完成(即:在任何语言之前)project()
or enable_language()
命令)。
例如:
set(CMAKE_C_COMPILER "gcc-4.2")
set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.2")
project("YourProjectName")
维基百科没有提供为什么应该避免第三种方法的原因......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)