下面是我的CMakeLists.txt文件中的一小段。我可以添加更多,但我认为问题仅涉及几行。
工具版本:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.8)
set(CMAKE_OSX_SYSROOT "") # This is the specific line in question
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-c++)
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)
add_executable(test_app
./src/main.cc
./startup/gcc_startup.cc
)
在OSX上编译时,我必须包含以下语句:
set(CMAKE_OSX_SYSROOT "")
否则,CMake注入
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
进入我的编译命令行。
在Linux上编译时,它不会执行此功能。
为什么CMake坚持将OSX sdk头文件注入Cortex-M交叉编译工具链中-我在纠正错误以抑制它吗?
看起来像这样不会引起太多兴趣。我在Mac OS上使用cmake时遇到了同样的问题,并且-isysroot导致编译失败。直到最近我才遇到这个问题。我的程序曾经编译过。
您的压抑对我有用。现在可以编译,尽管我不知道为什么。
谢谢