在 Visual Studio 2019 中使用 Clang 编译 C++ 项目时出现 lld-link 错误
lld-link error when compiling C++ project with Clang in Visual Studio 2019
我忙着用 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 库,但我认为它无法读取其中的内容。
答案是,当您使用 boost with clang 时,您应该在代码中设置 BOOST_THREAD_USE_LIB
标志。因此,我将以下 Cmake 代码添加到我的 CmakeListss.txt 文件中,我可以修复它。
add_definitions(-DBOOST_THREAD_USE_LIB)
我忙着用 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 库,但我认为它无法读取其中的内容。
答案是,当您使用 boost with clang 时,您应该在代码中设置 BOOST_THREAD_USE_LIB
标志。因此,我将以下 Cmake 代码添加到我的 CmakeListss.txt 文件中,我可以修复它。
add_definitions(-DBOOST_THREAD_USE_LIB)