在不滥用CMAKE_CXX_FLAGS和CMAKE_C_FLAGS的情况下为单个目标设置c-compiler和c ++-compiler标志

时间:2019-01-30 13:47:39

标签: c++ c cmake

我有一个(嵌入式C / C ++混合)项目。 我需要设置最重要的一个-fno-rtti。我不能使用

target_compile_options(
    my_target

    PRIVATE
       -fno-rtti
)

因为这为CXX和C对象设置了-fno-rtti。但是,看着Daniel Pfeifer - "Effective CMake",他“建议”不要使用SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_C_FLAGS}")SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CUSTOM_CXX_FLAGS}")

但是如何为c ++和c实现不同的编译器标志?我不能只为C使用-fno-rtti,因为它会发出警告,由于-Werror政策我不能忽略这些警告。

我尝试将C文件移至库中,或将C ++文件移至库中,但是会生成不同的(无效的)二进制文件。

0 个答案:

没有答案