[英]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.