相关疑难解决方法(0)

无法使用Boost.process

我下载并升级了1.54.0的Boost库版本.我做了一切就像回答这个问题:如何在Visual Studio 2010中使用Boost 然后我从这里下载并解压缩Boost.process:http://www.highscore.de/boost/process/ 并做了所有的回答这个问题:如何编译Boost.Process库?.

我把holder进程和process.hpp放在holder boost中,把其他holder进程放到libs中,并试图用b2.exe和bjam.exe用"--with-process"编译它,但得到"错误的库名"进程".

无论如何,我将库包含到我的项目中并放入以下代码:

    namespace bp = ::boost::process;

        int main()
        {

        std::string exec = "G:\\Detect.exe"; 
        std::vector<std::string> args; 
        args.push_back("--version");

        bp::context ctx; 
        ctx.stdout_behavior = bp::silence_stream();

        bp::child c = bp::launch(exec, args, ctx);

        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到一些错误:

1>c:\boost_1_54_0\boost\process\detail\pipe.hpp(129): error C2665: 'boost::system::system_error::system_error' : none of the 7 overloads could convert all the argument types
1>          c:\boost_1_54_0\boost\system\system_error.hpp(39): could be 'boost::system::system_error::system_error(int,const boost::system::error_category &,const std::string &)'
1>          c:\boost_1_54_0\boost\system\system_error.hpp(43): or       'boost::system::system_error::system_error(int,const boost::system::error_category &,const char *)'
1>          while trying to match …
Run Code Online (Sandbox Code Playgroud)

c++ boost

5
推荐指数
2
解决办法
2939
查看次数

与visual studio 2013相关联

我正在尝试链接到Visual Studio 2013中的几个boost库(需要编译的库)并且我很难这样做.

我已经通过从命令行运行来安装boost文件

boostrap.bat
Run Code Online (Sandbox Code Playgroud)

b2 --toolset=msvc-12.0 --build-type=complete architecture=x86 address-model=64 stage
Run Code Online (Sandbox Code Playgroud)

这样库就在C:\ boost_1_56_0/stage/lib中

在我的项目中,我进入配置属性> c/c ++>常规>其他包含目录并包含C:\ boost_1_56_0并包含标题,例如使用 #include<boost/serialization/vector.hpp>其他

然后,我转到配置属性>链接器>其他库依赖项,并包含C:\ boost_1_56_0\stage\lib

我现在知道boost使用自动链接,所以我确保没有尝试在配置属性>链接器>输入>附加依赖项中将链接指向boost库

但是我仍然得到以下类型的(很多)链接器错误:

error LNK2001: unresolved external symbol "public: void __thiscall boost::archive::detail::basic_oarchive::end_preamble(void)" (?end_preamble@basic_oarchive@detail@archive@boost@@QAEXXZ)
Run Code Online (Sandbox Code Playgroud)

我发现的所有相关问题都与对boost的自动连接工具的误解有关,但我现在明确地做了我应该做的事情(据我所知).它正在查找头文件,并且库文件是链接器查找它们的指导者.

我可能做错了什么?

c++ linker boost visual-studio

5
推荐指数
1
解决办法
8418
查看次数

如何在同一个结构中声明结构的向量?

我正在尝试创建一个结构,其中包含一个类型为相同结构的向量.但是,当我构建时,错误表明我错过了';' 在'>'出现之前.我不确定编译器是否甚至认为向量是一个东西:/并且我已经包含在我的代码中.这是我到目前为止:

#include <vector>

typedef struct tnode
{
    int data;
    vector<tnode> children;
    GLfloat x; //x coordinate of node 
    GLfloat y; //y coordinate of node
} tnode;
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!!

c++ struct vector

4
推荐指数
1
解决办法
196
查看次数

如何在 Visual Studio 2017 中安装和使用 boost 1.66.0

我一直在寻找有关如何在 Visual Studio 中安装 boost 的教程,但找不到任何教程。你能解释一下这个过程吗?

c++ boost visual-studio

4
推荐指数
1
解决办法
5356
查看次数

C++简单UDP服务器

在c ++中使用udp服务器并能够接收其消息的最简单方法是什么?

c++ udp

3
推荐指数
1
解决办法
1万
查看次数

sprintf与C++字符串类

我真的很喜欢c ++sprintf给出的答案但它仍然不是我想要的.

我想用占位符创建一个常量字符串,比如

const std::string LOGIN_URL = "%s://%s/chronicle/spring/api/logout";
Run Code Online (Sandbox Code Playgroud)

然后使用可替换参数构建字符串,如:

sprintf(url, LOGIN_URL, protocol, server); //coding sprintf from long ago memory, please ignore
Run Code Online (Sandbox Code Playgroud)

但是如果我能帮忙的话,我真的想远离C弦.

stringbuilder()方法要求我把我的常量字符串组合起来并在我想要使用它们时组装它们.这是一个很好的方法,但我想要的是更整洁.

c++ std

3
推荐指数
1
解决办法
1347
查看次数

如何通过b2使用pdb文件构建boost库

基于这个优秀的教程,我能够毫无问题地构建boost库.但是,我找不到任何生成的PDB文件.

boost_1_49_0> b2 --prefix = c:\ temp\boost1.49 --toolset = msvc-10.0 --build-type = complete

因为我已经为boost创建了.lib和.dll文件.为了获得所有相应的pdb,我应该做什么最小的构建?

boost visual-studio-2010

3
推荐指数
1
解决办法
2934
查看次数

Boost c ++ LNK1104无法打开文件'libboost_serialization-vc140-mt-gd-1_62.lib'错误

我目前正在尝试为我的c ++项目添加提升但是我遇到了这个错误

LNK1104无法打开文件'libboost_serialization-vc140-mt-gd-1_62.lib'

其实我想这个家伙的方法在这里

我将使用visual studio 2015使用头文件库,但我一直有这个错误,我也尝试使用nuget来安装boost但它给了我同样的错误

当我尝试使用b.jam这个人的引导下在这里

而且我总是无法更新错误,所以我不知道如何在我的C++项目中运行boost

c++ boost visual-studio visual-studio-2015

3
推荐指数
1
解决办法
5723
查看次数

无法构建提升

我已经能够使用以下命令在Windows Vista上编译boost:

bootstrap.bat

bjam.exe --with-filesystem --with-thread --toolset=msvc
Run Code Online (Sandbox Code Playgroud)

但是,当我在Windows 7上发出相同的命令时,我得到了这个:

'failed to write output file 'bin.v2\libs\thread\build\msvc-8.0\release\link-static\threading-multi\libboost_thread-vc80-mt-1_48.lib.rsp'!'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c c++ boost

2
推荐指数
2
解决办法
3707
查看次数

boost::archive 和序列化的链接器错误

我是 VC++ 12.0 和 MFC 以及 boost 库的新手。但是,我需要使用 boost 库来序列化存储自定义数据类型的向量。我阅读了DEMO_GPS的示例并在我的问题中使用了类似的代码。不幸的是,我遇到了以下链接器错误:

1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: __cdecl boost::archive::archive_exception::archive_exception(enum boost::archive::archive_exception::_exception_code,char const *,char const *)" (??0archive_exception@archive@boost@@QEAA@W4_exception_code@012@PEBD1@Z) referenced in function "protected: void __cdecl boost::archive::basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >::save_impl<double>(double const &,struct boost::mpl::bool_<1> &)" (??$save_impl@N@?$basic_text_oprimitive@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@IEAAXAEBNAEAU?$bool_@$00@mpl@2@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl boost::archive::archive_exception::~archive_exception(void)" (??1archive_exception@archive@boost@@UEAA@XZ) referenced in function "public: void __cdecl boost::archive::archive_exception::`vbase destructor'(void)" (??_Darchive_exception@archive@boost@@QEAAXXZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: virtual char const * __cdecl boost::archive::archive_exception::what(void)const " …
Run Code Online (Sandbox Code Playgroud)

c++ linker serialization mfc boost

2
推荐指数
1
解决办法
2792
查看次数

无法使用 MSVC2015 编译 boost.python 1.65.1

我正在尝试使用 MSVC2015 和 Python 3.7 生成 Boost.Python 1.65.1 库。

我有这个编译错误:

libs\python\src\converter\builtin_converters.cpp(51): error C2440: 'return': cannot convert from 'const char *' to 'void *'
libs\python\src\converter\builtin_converters.cpp(51): note: Conversion loses qualifiers
Run Code Online (Sandbox Code Playgroud)

相关代码(返回错误):

void* convert_to_cstring(PyObject* obj)
{
  return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0;
}
Run Code Online (Sandbox Code Playgroud)

对我来说,这似乎是一个真正的错误。b2 配置中是否有选项可以使编译器在此方面更加灵活?

我用这个作为信息:

https://codeyarns.com/2014/06/06/how-to-build-boost-using-visual-studio/

如何在 Visual Studio 2010 中使用 Boost

编辑:boost 1.69.0 没有这个错误,但我必须使用 1.65.1

Edit2:他们在 1.69.0 中更改了此代码:

PyUnicode_Check(obj) ? const_cast<void*>(reinterpret_cast<const void*>(_PyUnicode_AsString(obj))) : 0;
Run Code Online (Sandbox Code Playgroud)

c++ python boost boost-python

1
推荐指数
1
解决办法
874
查看次数