gpt4 book ai didi

c++ - 在现代 CMake 中设置全局选项?

转载 作者:太空宇宙 更新时间:2023-11-04 12:33:53 25 4
gpt4 key购买 nike

我正在使用 cmake 构建我的库,其中包括一个用于 google-test(子模块)的子目录。作为我的 CI 管道的一部分,我正在运行 msan(clang 内存 sanitizer ),这需要我使用一些特殊选项(-fsanitize=memory -stdlib=libc++ -L/路径/to/libc++/lib -I/path/to/libc++/include ...).

现在,我只是使用 CMAKE_CXX_FLAGS 和全局 include_directories 来设置所有 lib/include 路径。但是,这违背了“现代 cmake”准则。这是对全局变量的适当使用,还是有另一种方法可以使用目标使其正常工作?我可以为我的图书馆做这件事,但它不会传播到谷歌测试,我会收到链接错误。

最佳答案

您正在寻找的选项的现代 cmake 用法是 add_compile_options()以及target_include_directories您可以在其中为指定的目标项目指定公共(public)和私有(private)包含。

希望这对您有所帮助。

关于c++ - 在现代 CMake 中设置全局选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57271472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com