0

当我尝试使用标志编译我的eek.cpp文件时,它显示:g++ eek.cpp -o eek -fsanitize=undefined

ld: library not found for -lubsan
collect2: error: ld returned 1 exit status

g++ eek.cpp -o eek工作正常。 我的终端截图在这里。

我在 macOS Big Sur 上使用 zsh 和 gcc 10.2.0。fsanitize=undefined在我从 Catalina 更新我的 macOS 之前,昨天还在工作。

ubsan.h文件确实存在于 中/usr/local/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/x86_64-apple-darwin20/10.2.0/plugin/include,但它不起作用。我也读过这篇文章,但它并没有解决我的问题。我应该如何解决它?

4

2 回答 2

0

我在尝试编译 fortran 程序并收到错误时遇到了类似的问题ld: librarynot found for -lSystem。@kaage 的回答帮助了我,但我没有足够的声誉来评论它。

我只是想补充一点,在运行brew upgrade它时抱怨我的命令行工具太过时了。运行(正如 brew 本身所建议的那样)

 sudo rm -rf /Library/Developer/CommandLineTools
 sudo xcode-select --intsall

解决它。

不确定这是否完全针对所提出的问题,因此请随时纠正我。

于 2022-01-13T15:14:47.040 回答
0

自从我更新了我的 macOS 后,我遇到了同样的问题,但刚刚用brew upgrade. 很抱歉,我不能说这个问题涉及到什么公式,但更新公式值得一试。

于 2021-01-29T09:33:51.263 回答