visual-c++ - 在 Visual Studio 2019 中使用 Clang 编译 C++ 项目时出现 lld-link 错误
问题描述
我正忙着在 VS2019 中用 Clang 编译我的项目,但我不能。我将 VS2019 更新到最新版本,我现在正在使用 Clang 12.00。
在我的项目中,我使用的是 boost 库。要构建 boost 库,我运行以下命令:
bootstrap --with-toolset=clang-win
b2.exe link=static threading=multi runtime-link=shared address-model=64 toolset=clang-win variant=release --build-type=complete --architecture=x64 cxxflags=-std=c++14
编译给了我这个错误:
1>lld-link : error : undefined symbol: __declspec(dllimport) public: __cdecl boost::thread::~thread(void)
我认为boost库不兼容。VS 可以找到 boost 库,但我认为它无法在其中读取。
解决方案
答案是,当您使用带有 clang 的 boost 时,您应该BOOST_THREAD_USE_LIB
在代码中设置标志。因此,我将以下 Cmake 代码添加到我的 CmakeListss.txt 文件中,然后我可以修复它。
add_definitions(-DBOOST_THREAD_USE_LIB)
推荐阅读
- c# - NLog在c#中获取日志消息
- python - 如何同时打印重量和损失?
- r - dygraph(在 r 中)的注释未显示
- android - 没有 API < 26 的虚拟方法 MediaRecorder.setOutputFile?
- java - 遍历地图列表(列表
- python - 当 django admin 中的某个字段更改时执行操作
- ios - Xcode 本地化 Main.strings 文件具有多个具有相同上下文的字符串。全部链接到一个主字符串?
- c - 读取文本文件并显示除所有空白行和注释之外的每一行的 C 程序
- javascript - 如何使用从 REST API 返回的 PDF 内容创建 PDF 文档
- android - 如何使用 AirTest 对触摸事件使用绝对位置(方向无关紧要)