c++ - 在具有不受支持的组件的目标上使用 -fsanitize 标志

标签 c++ c gcc clang

使用 -fsanitize 进行编译时,我是否必须使用它来编译每个目标?

我有一些不受它支持的目标(汇编和 C 目标)。

主要可执行文件是受支持的 C++ 文件。

fsanitize 有效吗?或者我需要删除不受支持的文件吗?或者它只会工作用该标志编译的部分?

最佳答案

文档告诉我们,-fsanitize 启用了 AddressSanitizer,并提供了其主页的链接。这样,我们就可以直接从 the FAQ 得到答案。 :

Q: I've built my main executable with ASan. Do I also need to build shared libraries?

A: ASan will work even if you rebuild just part of your program. But you'll have to rebuild all components to detect all errors.

虽然您没有构建共享库,但此答案表明并非链接到可执行文件的每个对象都需要启用 AddressSanitizer。

关于c++ - 在具有不受支持的组件的目标上使用 -fsanitize 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33285910/

相关文章:

c++ - 包含 std::threads 的元素 vector

c++ - 对于数据成员,如果包含对象已经在动态内存中,则动态分配(或不分配)此变量之间有什么区别吗?

c++ - 检查已经运行的进程和通信拷贝

python - 无法安装 Orange : "error: command ' clang' failed with exit status 1"

c++ - 为什么代码首先打印 0

c++ - 在继承层次结构中复制和 move

c++ - 用于字节偏移量操作的更清晰的指针算术语法

在构建时检查 C 类型的大小

c++ - 为什么我在链接期间得到 "undefined reference to ` glibtop_init'"?

c++ - 转发函数指针