我目前将所有AVR(微控制器)项目从丑陋的Makefiles移植到(好吧,有点不那么难看)CMakeLists。我的问题是,即使我在没有CMake默认值的情况下定义CMAKE_C_FLAGS,仍会传递一些不需要的参数。
CMakeLists.txt片段:
set(CMAKE_C_FLAGS "-std=c99 ...")
我希望现在CMake会像这样调用编译器:
gcc -std=c99 ... <input files> -o <output file>
会发生什么(make VERBOSE=1
):
gcc -std=c99 ... <some input files> -o <output> -rdynamic
-rdynamic
是如何到达那里的?如果目标的gcc会支持它,我会忽略它,但因为它不知道-rdynamic
选项......好吧我有点搞砸了......
答案 0 :(得分:2)
这是已知问题。尝试添加:
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")