我添加了如下地址消毒器标志:
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
当使用 Unix Makefiles
时,一切都构建和运行得很好。
问题出现在生成 Xcode 项目时,它只是不想链接,因为它找不到 ASan 库。
我已经找到了两个解决方案,但是决定不使用它们,因为它们不能仅仅使用 CMake 自动化:
-Wl,-undefined,dynamic_lookup
添加到链接标志中,因此它跳过了链接到动态库的步骤。libclang_rt.asan_osx_dynamic.dylib
连接。那么这两种解决方案有什么问题呢?
libclang_rt.asan_osx_dynamic.dylib
的 DYLD_INSERT_LIBRARIES
环境变量。此外,作为另一个解决方案,我尝试从 Xcode 目标模式启用 Address Sanitizer 标志,但有趣的是,它没有检测到我添加的问题,所以我没有将其列为解决方案,因为它未能通过我的测试。
任何帮助都将不胜感激。