当我使用 cmake 为 arm-none-eabi 生成交叉编译构建时,出现此错误:
... is not able to compile a simple test program
...error: unrecognized command-line option '-rdynamic'
我尝试在工具链文件中添加标志
-Wl,-export-dynamic
,但-rdynamic
是由cmake添加的
arm-none-eabi-gcc -Wl,-export-dynamic -rdynamic CMakeFiles/cmTC_803b3.dir/testCCompiler.c.o -o cmTC_803b3
如何删除它?
忽略
rdynamic
部分,真正的问题是 CMake 正在尝试在您的计算机上进行编译器检查,而您的交叉编译工具链失败。这是可以预料到的,因为 ARM 编译器是为,嗯……ARM 机器而设计的,而你可能正在使用其他东西作为你的工作站。
因此请确保在工具链文件中禁用编译器检查。大多数时候,添加
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
就足够了。