Я пытаюсь п-й раз компилировать кварты из источника, на этот раз с -release -platform-win32 ошибок, но я получаю вариант конфигурационными:
станд :: tr1 не был объявлен
Любой знает, как это исправить?
Спасибо.
Я пытаюсь п-й раз компилировать кварты из источника, на этот раз с -release -platform-win32 ошибок, но я получаю вариант конфигурационными:
станд :: tr1 не был объявлен
Любой знает, как это исправить?
Спасибо.
Если вы используете GCC 4.7 у вас есть доступ к большинству C++ 11, если вы компилируете с -std=c++11
или -std=gnu++11
вы можете проверить поддерживаемые функции под std
имен here. tr1
подпространство имен предназначено для проекта, который теперь стал стандартным.
@aj Извините, но как вы ответили на мой вопрос? – smallB
QT использует mingw, который обертывает gcc, который нуждается в '-std = gnu ++ 11' или новые функции будут неопределенными. Если вы не используете этот параметр, вам нужно будет удалить все ссылки, которые не соответствуют C++ 03 для компиляции. – AJG85
@aj дистрибутив Я использую использование C++ 11 по умолчанию – smallB
Вы можете столкнуться с этой проблемой при компиляции Qt с помощью компилятора MinGW (возможно, любого gcc-компилятора), который по умолчанию выполняет компиляцию программ на C++ с включенным стандартом C++ 11.
Сторонняя библиотека JavaScriptCore пытается определить некоторые оболочки, которые «нормализуют» has_trivial_constructor
и связанные с ними шаблоны, но, судя по всему, он еще не был обновлен, чтобы иметь дело с обновлениями GCC, чтобы включить завершенный стандарт C++ 11.
Исправление использовать компилятор MinGW, которая не включает C++ 11 функций по умолчанию, или выключить их путем редактирования mkspecs\win32-g++\qmake.conf
добавить опцию -std=gnu++98
на C++ строит:
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -std=gnu++98
# ^^^^^^^^^^^^
Отличный ответ, исправленный мой qt make (4.8) в 2017 году. – adgang
Try (завернутый в макрос вокруг #include <type_traits>
) добавление #include <tr1/memory>
в TypeTraits.h
Вы можете заменить предварительно std::tr1::has_trivial_constructor
с ++ 11 стандартизированной std::is_trivially_constructible
. См. http://www.cplusplus.com/reference/type_traits/is_trivially_constructible.
Какая версия mingw32 gcc вы используете - это определенно включает в себя заголовки tr1? Является ли источник QT определенными, включая те, которые ему нужны? – Rup
@Rup Я использую gcc 4.7, похоже, что у него есть те заголовки – smallB
Да, я слишком поздно заметил, что на вашем выходе все равно будет 'win32-g ++ - 4.6'. Он пытается использовать 'std :: tr1 :: has_trivial_constructor', который должен быть объявлен в' type_traits'. Однако похоже, что он уже пытается включить это. Возможно, вы могли бы отредактировать '# if' в файле (или временно '# undef' одну из констант, а затем переопределить его в конце), поэтому он использует свой tr1-not-available код. – Rup