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

时间:2015-10-22 16:25:07

标签: c++ c gcc clang

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

我有一些不受其支持的目标(程序集和C目标)。

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

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

1 个答案:

答案 0 :(得分:2)

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

  

问:我用ASan构建了我的主要可执行文件。我是否还需要构建共享库?

     

答:即使您只重建了部分程序,ASan也能正常工作。但是你必须重建所有组件才能检测到所有错误。

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