Ошибка при создании простого приложения Qt5

Я установил Qt 5.0.0 (qt-mac-opensource-5.0.0-clang-offline.dmg) на Mac OS X 10.7.5 и теперь я пытаюсь скомпилировать приложение «Hello World» с помощью Qt Creator 2.6.1.

Процесс сборки сообщает о том, что каталог не найден: /Users/karlphillip/Qt5.0.0/5.0.0/clang_64/qtbase/lib, за которым следует несколько ошибок связывания:

clang++ -c -pipe -mmacosx-version-min=10.6 -O2 -Wall -W -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/mkspecs/macx-clang -I. -I/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/include -I/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/include/QtGui -I/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/lib/QtGui.framework/Versions/5/Headers -I/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/include/QtCore -I/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/lib/QtCore.framework/Versions/5/Headers -I. -I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/System/Library/Frameworks/AGL.framework/Headers -o main.o main.cpp
clang++ -headerpad_max_install_names -mmacosx-version-min=10.6 -o hello_qt.app/Contents/MacOS/hello_qt main.o -F/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/lib -framework QtGui -F/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/qtbase/lib -framework QtCore -framework OpenGL -framework AGL
ld: warning: directory not found for option '-F/Users/karlphillip/Qt5.0.0/5.0.0/clang_64/qtbase/lib'
Undefined symbols for architecture x86_64:
"QApplication::QApplication(int&, char**, int)", referenced from:
_main in main.o
"QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)", referenced from:
_main in main.o
"QWidget::show()", referenced from:
_main in main.o
"QPushButton::QPushButton(QString const&, QWidget*)", referenced from:
_main in main.o
"QApplication::exec()", referenced from:
_main in main.o
"QPushButton::~QPushButton()", referenced from:
_main in main.o
"QLabel::~QLabel()", referenced from:
_main in main.o
"QApplication::~QApplication()", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [hello_qt.app/Contents/MacOS/hello_qt] Error 1

Важно отметить, что путь /Users/karlphillip/Qt5.0.0/5.0.0/clang_64/qtbase/lib недействителен, потому что каталог qtbase не существует. Рабочий путь /Users/karlphillip/Qt5.0.0/5.0.0/clang_64/lib. Я не имею в виду qtbase в моем проекте, поэтому, вероятно, он добавляется qmake.


person karlphillip    schedule 23.01.2013    source источник


Ответы (2)


Как оказалось, неверный путь qtbase на самом деле является ошибкой Qt, о которой первоначально сообщалось на QTBUG-28336.

Проблема связывания возникает из-за того, что мой проект не связан с QtWidgets, что нам нужно будет сделать, начиная с Qt5. Для этого нужно добавить в файл .pro следующую строку:

QT += widgets
person karlphillip    schedule 23.01.2013
comment
Я попробовал это, и сначала он исправил проблему с компиляцией, которая возникла у меня несколько дней назад. Но теперь проблема вернулась. В этом вопросе должно быть нечто большее. Я использую OS X 10.7.5, Qt Creator 2.6.2 и Qt 5.0.1. - person nairware; 03.04.2013

У меня была такая же проблема, и, честно говоря, я не уверен, как мне удалось ее решить.

Я думаю / предполагаю, что я скопировал необходимые папки из источников в соответствующие папки clang_64, и это делает свою работу.

так долго заи

person Zaiborg    schedule 23.01.2013
comment
Вы скопировали в папку qtbase? Если да, то где вы это взяли? - person nairware; 04.04.2013
comment
Я нашел каталог qtbase в «QtSources». если вы также установили исходные коды qt, вы должны найти его в каталоге установки вашей установки qt. - person Zaiborg; 05.04.2013
comment
Я не могу найти это в Интернете или на своем локальном компьютере. Не могли бы вы прояснить, что такое QtSources? Это каталог? Мне его не хватает, потому что я не установил правильную версию Qt? - person nairware; 08.04.2013
comment
хорошо, я использовал имя, которое qt использует в версии для Windows ... если вы установили пакет qt и выбрали, что хотите `` установить исходный код '', у вас должен быть каталог в <QTINSTALLDIR>/5.x.x/Src/, и он должен содержать отсутствующий каталог qtbase - person Zaiborg; 08.04.2013