我正在通过 gcc 编译 main.c 文件,并启用了 sanitizer 选项。
因此,链接器命令在其参数列表中包含“-lubsan”选项。
需要说,我没有明确地为 gcc 提供“-lubsan”选项。
此外,我反对使用它。
所以,问题是:“如何摆脱这种自动添加的选项?
是否可以在不分离编译和链接命令的情况下做到这一点?”。
main.c 文件的内容:
int main()
{
volatile int a=0x7fffffff;
a = a<<1;
return a;
}
build_gcc_host.sh 文件内容:
#!/bin/bash
gcc \
-fsanitize=shift \
main.c \
-o \
main \
-### \
2>&1 \
| \
grep ubsan
PS 如果使用“-nostdlib”选项,则不会添加“-lubsan”,但我确实需要“stdlib”。
我根本不需要自动添加“-lubsan”。