我想在Ubuntu上使用GCC 5.1编译使用C++ 11功能编写的库。但是,它抱怨std::unique_ptr
未定义。使用GCC 5.1工具链无法编译C++ 11源码
gcc (Ubuntu 5.1.0-0ubuntu11~14.04.1) 5.1.0
g++ (Ubuntu 5.1.0-0ubuntu11~14.04.1) 5.1.0
CXX标志:
-std=c++11 -Wall -Wextra -Weffc++ -pedantic
输出:
error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
std::unique_ptr<detail::RegexImpl> m_pimpl;
不过,我能够编译OSX上完全相同的代码。
Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
CXX标志:
-stdlib=libc++ -std=c++11 -Wall -Wextra -Weffc++ -pedantic
我在做什么错?
请显示出处。你包括''? –
我在Ubuntu上对gcc 5.1没有任何问题。我从源代码编译它,添加包含和lib路径env变量,它的工作原理。 – bolov
这听起来像你依赖于实现依赖的头间依赖关系。当您尝试移植不可移植的代码时不会感到意外,幸运的是修复很容易。 –