繁体   English   中英

使用 std=c++11 或 ash c++14 等其他标准编译 boost

[英]Compile boost with std=c++11 or other standards such ash c++14

我正在使用 Visual Studio GDB 项目,我遇到了一个问题,包括链接器输入中的 boost linux 库。

这是收到的错误:

对`std::__cxx11::basic_string, std::allocator >::_M_create(unsigned long&, unsigned long)' 的未定义引用

似乎该库未被识别为使用 -std=c++11 编译

用于编译库的命令是:

sudo ./boostrap.sh
sudo ./b2 toolset=gcc cxxflags="-std=c++11"
make
sudo make install

编译运行良好。

我正在使用 boost 1.62.0 版本和 gcc-5.4.0 版本来编译库。 Visual Studio 项目中作为链接器输入包含的库是 libboost_system.a

我认为 Visual Studio 的错误与 c++11 编译有关。

你能告诉我编译过程是否正常吗?

如果不是,请告诉哪个是为 c++11 编译库的正确程序?

该错误是否意味着其他?

您在启用 c++11 的情况下编译 Boost 的步骤是正确的(尽管您不需要所有sudo )。 那么问题一定是你如何编译你自己的程序:它应该使用完全匹配的标志。 检查您的程序是否没有使用例如编译器默认值,这很可能是 c++14 或 c++03。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM