我正在使用启用了消毒剂选项的gcc编译main.c文件。
结果,链接器命令的参数列表中包含“ -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
P.S。 如果使用“ -nostdlib”选项,则不会添加“ -lubsan”,但是我确实需要“ stdlib”。
我只是不需要自动添加“ -lubsan”。