Я пытаюсь скомпилировать библиотеку, написанную с помощью функций C++ 11 с использованием GCC 5.1 на Ubuntu. Однако он жалуется, что std::unique_ptr
не определен.Невозможно скомпилировать исходный код C++ 11 с использованием инструментальной привязки GCC 5.1
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
Что я делаю неправильно?
Пожалуйста, укажите источник. Вы включаете ''? –
У меня не было проблем с gcc 5.1 на Ubuntu. Я скомпилировал его из источника, добавил include и lib путь к переменной env, и он работает. – bolov
Похоже, вы полагаетесь на зависимые от реализации зависимости между заголовками. Не удивительно, что когда переносимый код ломается, когда вы пытаетесь его перенести, к счастью, это легко. –