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。

+0

这似乎更可能是vcpkg的问题。有一个神秘的C:\ vcpkg-master \ packages \ boost_x86-windows \ lib \ manual-link文件夹,但这似乎也没有帮助。 – DLyons

,我这个目录添加到

$(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