我已经使用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的安装程序问题。
答案 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")