使用-fsanitize进行编译时,是否必须使用它编译每个目标?
我有一些不受其支持的目标(程序集和C目标)。
主可执行文件是受支持的C ++文件。
fsanitize会工作吗?或者我是否需要删除不受支持的文件?或者它只是使用标志编译的部分?
答案 0 :(得分:2)
文档告诉我们-fsanitize
启用了AddressSanitizer,提供了指向其主页的链接。有了这个,我们可以直接从the FAQ得到答案:
问:我用ASan构建了我的主要可执行文件。我是否还需要构建共享库?
答:即使您只重建了部分程序,ASan也能正常工作。但是你必须重建所有组件才能检测到所有错误。
虽然您没有构建共享库,但这个答案表明并非每个链接到您的可执行文件的对象都需要启用AddressSanitizer。