boost :: process throws LNK2019:无法解析的外部符号
问题描述:
我已经使用vcpkg安装了Boost。现在我正在尝试使用Boost:进程的“Hello World”。假设我开始加速注释掉一切正常boost :: process throws LNK2019:无法解析的外部符号
#include <iostream>
//#include <boost/process.hpp>
//#include <boost/process/windows.hpp>
//namespace bp = boost::process;
int main(int argc, char * argv[])
{
int result = std::system("echo Hello");
}
现在,如果我去掉升压,但不使用它,即我还是叫
std::system("echo Hello");
它编译但抛出两个连接错误
"__declspec(dllimport) class boost::system::error_category const & __cdecl boost::system::system_category(void)" ([email protected]@[email protected]@[email protected]@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'native_ecat''(void)" ([email protected]@[email protected]@YAXXZ)
"__declspec(dllimport) class boost::system::error_category const & __cdecl boost::system::generic_category(void)" ([email protected]@[email protected]@[email protected]@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" ([email protected]@[email protected]@YAXXZ)
我试过添加
的附加库依赖关系C:\vcpkg-master\installed\x86-windows\lib
C:\vcpkg-master\packages\boost_x86-windows\debug\bin
C:\vcpkg-master\packages\boost_x86-windows\debug\lib
C:\vcpkg-master\packages\boost_x86-windows\lib
C:\vcpkg-master\packages\boost_x86-windows\bin
但这些都没有解决这个错误。 有谁知道在哪里可以找到正确的链接librries?
如果我实际调用加强与 INT结果= BP ::系统( “回声你好”); 有9个未解决的外部问题。
至于我可以看到,这是一个安装问题与VCPKG。
答
,我这个目录添加到
$(SolutionDir)..\vcpkg\installed\x64-windows\lib
要
Project -> Properties-> Liker -> Additional Library Directories
,并加入这一行到stdafx.h中
#pragma comment(lib, "boost_system-vc140-mt-1_65_1.lib")
+1
我试过了,它似乎没有工作,但我认为根本原因是VC安装本身。我卸载并重新安装了一些带有一些不同参数的早期版本,现在它正在运行。谢谢回复。 – DLyons
答
您需要链接boost_system。您如何在您的设置中实现这一点取决于您。通常在MSVC上是自动的。
看看哪些有例子几个有用的方法的相关文件:我手工做的http://www.boost.org/doc/libs/1_65_1/more/getting_started/windows.html#link-your-program-to-a-boost-library
这似乎更可能是vcpkg的问题。有一个神秘的C:\ vcpkg-master \ packages \ boost_x86-windows \ lib \ manual-link文件夹,但这似乎也没有帮助。 – DLyons