Gcc 传递给编译器的不需要的选项

Gcc 传递给编译器的不需要的选项,gcc,cmake,avr,Gcc,Cmake,Avr,我目前把我所有的AVR(微控制器)项目从丑陋的makefile移植到(嗯,稍微不那么丑陋的)CMakeLists。我这里的问题是,即使我在没有CMAKE默认值的情况下定义CMAKE_C_标志,仍然会传递一些不需要的参数 CMakeLists.txt代码段: set(CMAKE_C_FLAGS "-std=c99 ...") 我希望现在CMake会这样调用编译器: gcc -std=c99 ... <input files> -o <output file> 那是怎么做

我目前把我所有的AVR(微控制器)项目从丑陋的makefile移植到(嗯,稍微不那么丑陋的)CMakeLists。我这里的问题是,即使我在没有CMAKE默认值的情况下定义CMAKE_C_标志,仍然会传递一些不需要的参数

CMakeLists.txt代码段:

set(CMAKE_C_FLAGS "-std=c99 ...")
我希望现在CMake会这样调用编译器:

gcc -std=c99 ... <input files> -o <output file>

那是怎么做到的?如果目标的gcc支持它,我会忽略它,但因为它不知道
-rdynamic
选项。。。嗯,我有点搞砸了…

这是众所周知的问题。尝试添加:

set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")