C++ 用std=c+编译boost+;11

C++ 用std=c+编译boost+;11,c++,boost,C++,Boost,我正在使用一个VisualStudioGDB项目,在链接器输入中包含BoostLinux库时遇到了问题 以下是收到的错误: 未定义对“std::u cxx11::basic_字符串,std::allocator>:_M_create(未签名)”的引用 长(,无符号长)' 该库似乎未被识别为使用-std=c++11编译 用于编译库的命令有: sudo ./boostrap.sh sudo ./b2 toolset=gcc cxxflags="-std=c++11" make sudo make i

我正在使用一个VisualStudioGDB项目,在链接器输入中包含BoostLinux库时遇到了问题

以下是收到的错误:

未定义对“std::u cxx11::basic_字符串,std::allocator>:_M_create(未签名)”的引用 长(,无符号长)'

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

用于编译库的命令有:

sudo ./boostrap.sh
sudo ./b2 toolset=gcc cxxflags="-std=c++11"
make
sudo make install
汇编工作进展顺利

我正在使用Boost1.62.0版本和gcc-5.4.0版本编译库。VisualStudio项目中作为链接器输入的库是libboost_system.a

我认为VisualStudio的错误与c++11编译有关

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

如果不是,请告诉我编译c++11库的正确过程是什么


这个错误是否意味着其他什么?

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

此链接应该会有所帮助:尽管我不确定它是否能正常工作。为什么要用gcc编译boost,然后尝试将其链接到VS项目??“Visual Studio GDB项目”和“boost linux库”?Linux库无法在Windows上运行。您好,Visual Studio GDB项目输出是一个Linux应用程序和一个Windows应用程序,两者同时启动。linux应用程序是在linux处理器上编译并运行的。我的问题是,我在链接器输入中使用的所有库都是用std=c++11编译的,boost也是编译的,它以前工作过。现在我正在使用boost中的一个新库:系统和文件系统库,关于c++11编译,我有一个错误。我使用以前编写的命令再次编译了boost,但仍然有相同的错误。您能告诉我是否使用了正确的命令来编译boost系统/文件系统库吗?我错过什么了吗?