boost :: process抛出LNK2019:未解析的外部符号

时间:2017-10-28 10:07:27

标签: c++ windows c++11 boost

我已经使用vcpkg安装了Boost。现在我正在尝试一个" Hello World"与Boost:进程。假设我从Boost开始注释掉一切正常

#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");
}

现在,如果我取消注释Boost但不使用它,即我仍然打电话

std::system("echo Hello"); 

它编译但会抛出两个链接错误

"__declspec(dllimport) class boost::system::error_category const & __cdecl boost::system::system_category(void)" (__imp_?system_category@system@boost@@YAABVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'native_ecat''(void)" (??__Enative_ecat@system@boost@@YAXXZ)
"__declspec(dllimport) class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (__imp_?generic_category@system@boost@@YAABVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" (??__Eerrno_ecat@system@boost@@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?

如果我真的打电话给Boost int result = bp :: system(&#34; echo Hello&#34;); 有9个未解决的外部因素。

据我所见,它是VCPKG的安装程序问题。

2 个答案:

答案 0 :(得分:0)

您需要链接boost_system。如何在您的设置中实现这一点取决于您。通常在MSVC上它是自动的。

请参阅相关文档,其中包含几个有用的方法和示例:http://www.boost.org/doc/libs/1_65_1/more/getting_started/windows.html#link-your-program-to-a-boost-library

答案 1 :(得分:0)

我手动完成,我将此目录添加到

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