为什么子项目 CMAKE 没有考虑 fno-sanitize,为目标禁用消毒剂
Why fno-sanitize is not taken into account for a subproject CMAKE, disable sanitizer for a target
我正在开发一个包含多个目标的 CMake 项目。
我正在通过 CMake 激活 ADDRESS SANITIZER(ccmake .
并输入 ADDRESS_SANITIZER=ON
)。它被正确激活,尽管我想在其中一个目标上将其停用。为此,我将 -fno-sanitize=all
添加到目标的编译器标志中,但未将其考虑在内。
有没有办法针对特定目标灭活消毒剂?有问题的目标不依赖于任何库或项目的任何其他目标。它只依赖于机器上安装的 LLVM 库。
子项目有自己的 CMakeList.txt
并作为子项目添加到主项目中。
-fno-sanitize=all
由 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize=all"
设置
我使用 target_compile_options(target -fno-sanitize=all)
而不是 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize=all
解决了问题。
我正在开发一个包含多个目标的 CMake 项目。
我正在通过 CMake 激活 ADDRESS SANITIZER(ccmake .
并输入 ADDRESS_SANITIZER=ON
)。它被正确激活,尽管我想在其中一个目标上将其停用。为此,我将 -fno-sanitize=all
添加到目标的编译器标志中,但未将其考虑在内。
有没有办法针对特定目标灭活消毒剂?有问题的目标不依赖于任何库或项目的任何其他目标。它只依赖于机器上安装的 LLVM 库。
子项目有自己的 CMakeList.txt
并作为子项目添加到主项目中。
-fno-sanitize=all
由 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize=all"
我使用 target_compile_options(target -fno-sanitize=all)
而不是 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize=all
解决了问题。