首页 > 解决方案 > 在 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 库,但我认为它无法在其中读取。

标签: visual-c++clangc++14

解决方案


答案是,当您使用带有 clang 的 boost 时,您应该BOOST_THREAD_USE_LIB在代码中设置标志。因此,我将以下 Cmake 代码添加到我的 CmakeListss.txt 文件中,然后我可以修复它。
add_definitions(-DBOOST_THREAD_USE_LIB)


推荐阅读