如何将编译器标志仅限制到(我的)本地库?

信使

我正在尝试下面的示例:

add_library(
        mylib
        src/my_code.cpp)

target_include_directories(mylib
        PUBLIC include ${catkin_INCLUDE_DIRS} ${thirdPartyLib_INCLUDE_DIRS})

add_dependencies(
        mylib
        ${mylib_EXPORTED_TARGETS}
        ${catkin_EXPORTED_TARGETS})


target_link_libraries(mylib
        PUBLIC
        ${thirdPartyLib_LIBRARY} ${catkin_LIBRARIES})

target_compile_options(mylib PRIVATE -Werror -Wall -Wextra)

问题是编译选项也会传播到thirdPartyLib,但是我只需要它们mylib

凯瑟拉夫

我认为问题是编译器警告,编译器警告是thirdPartyLib在编译file时由包含的头文件生成的my_code.cpp

如果您不想让编译器从包含的第三方头文件中生成警告,则可以在gcc / clang中将其作为“系统头”包含(命令行选项,-isystem而不是-I)。

为此,请在CMake中使用SYSTEM选项target_include_directories

target_include_directories(mylib
    SYSTEM
        PUBLIC ${thirdPartyLib_INCLUDE_DIRS}
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将编译器标志从 clang 传递给 nvcc

如何将全局CXX编译器标志添加到yocto构建

如何将编译器标志传递给Rust中的子板条箱?

如何将标志传递给CMAKE中的nvcc编译器

如何使用qmake将编译器标志指定到单个源文件?

我如何将JDK编译器与Dr Java一起使用,而不是Eclipse编译器?

使用 Visual Studio 2017 构建 SSDT 项目时如何将 /unsafe 标志传递给 C# 编译器

如何将 BeagleBoneBlack 的 pasm PRU 编译器集成到 Yocto

在CMake中使用本地编译器标志

从Hackage将Haskell绑定下载到c库时指定gcc编译器标志

如何将编译器更新为Swift 2?

如何将默认的g ++编译器与vscode集成?

Yocto Dunfell如何在全局范围内将编译器标志设置为“ -Os”

如何通过Gradle将-parameters javac标志传递给Java编译器?

如何配置mex以将编译器标志传递给nvcc

如何将远程SQL Server数据库备份到本地驱动器?

如何将SQL Azure数据库复制到本地开发服务器?

我可以做getest pass编译器标志吗?

如何最好地防止库(源)和应用程序(头)编译之间的(编译器)标志不匹配?

我如何将一个npm包卷曲到本地本地的npm存储库中?

cmake:如何根据当前编译器版本添加编译器标志

使用pyximport时如何设置Cython编译器标志?

gulp-mocha如何通过编译器标志?

如果传递冲突的编译器标志,GCC的行为如何?

Arduino 1.0.6:如何更改编译器标志?

如何忽略pip中的编译器标志?

如何让编译器选择更新标志的 ARM 指令?

代码::块,如何将链接器选项`-lstdc ++`放在编译器命令的末尾?

如何将本地主机限制为本地浏览器?