我想在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
這聽起來像你依賴於實現依賴的頭間依賴關係。當您嘗試移植不可移植的代碼時不會感到意外,幸運的是修復很容易。 –