Ubuntu 20.04下GCC 9.x编译时ld找不到libtsan_preinit.o的解决方法
解决Ubuntu 20.04下GCC 9.4.0使用ThreadSanitizer提示找不到libtsan_preinit.o的问题
在Ubuntu 20.04环境下使用gcc 9.4.0编译代码,当在CMake配置中添加ThreadSanitizer相关编译选项:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -g -fno-omit-frame-pointer")
会出现链接错误:/usr/bin/ld can't find libtsan_preinit.o。这是Ubuntu针对gcc-9的已知问题。
可通过以下步骤修复:
- 安装libgcc-10-dev开发包:
sudo apt install libgcc-10-dev - 创建软链接,让链接器定位到缺失的文件:
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/10/libtsan_preinit.o /usr/lib/libtsan_preinit.o
内容的提问来源于stack exchange,提问作者ShowCode
相关产品推荐
相关产品推荐

