Чтобы начать работу, ошибка QApplication: no such file or directory
означает, что ваш компилятор не смог найти этот заголовок. Это не связано с процессом связывания, как вы упомянули в вопросе.
-I
флаг (прописные я) используется для указания включают (заголовки) каталог (который является то, что вам нужно сделать), в то время как -L
флаг используется для указания каталога библиотек.Флаг -l
(нижний регистр L) используется для связи вашего приложения с указанной библиотекой.
Но вы можете использовать Qt в ваших интересах: Qt имеет систему сборки под названием QMAKE, что делает вещи проще. Например, когда я хочу скомпилировать main.cpp Я создаю файл main.pro. Для образовательных целей, скажем, этот исходный код - это простой проект, который использует только QApplication
и QDeclarativeView
. Соответствующий .pro файл будет:
TEMPLATE += app
QT += gui declarative
SOURCES += main.cpp
Затем выполните qmake
внутри этой директории создать файл сборки, который будет использоваться для компиляции приложения, и, наконец, выполнить make
, чтобы получить работу.
На моей системе это make
выходы:
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qt_47x/mkspecs/linux-g++ -I. -I/opt/qt_47x/include/QtCore -I/opt/qt_47x/include/QtGui -I/opt/qt_47x/include/QtDeclarative -I/opt/qt_47x/include -I/usr/X11R6/include -I. -o main.o main.cpp
g++ -Wl,-O1 -Wl,-rpath,/opt/qt_47x/lib -o main main.o -L/opt/qt_47x/lib -L/usr/X11R6/lib -lQtDeclarative -L/opt/qt_47x/lib -lQtScript -lQtSvg -L/usr/X11R6/lib -lQtSql -lQtXmlPatterns -lQtNetwork -lQtGui -lQtCore -lpthread
Примечание: Я установил Qt в другом каталоге ->/opt/qt_47x
'Это дает мне эту ошибку'. Какая ошибка?Отправьте правильный вывод ошибки, которую вы получаете. Никто не сможет вам помочь, пока вы не предоставите полную информацию. –
Название этого вопроса. Источник - это простой файл, я думал, что мне не нужно публиковать его, но просто: http://pastebin.com/972XtFUz –
Что такое вывод '$ locate QApplication'? –