Файл проекта Qmake - PullRequest
       4

Файл проекта Qmake

1 голос
/ 09 февраля 2011

У меня есть файл класса (header и cpp), который я создал и который хочу использовать в моем файле main.cpp. Я сгенерировал файл проекта qmake (из текущего каталога моего main.cpp) и добавил заголовок и cpp с помощью:

HEADERS += $$quote(/home/myusername/projects/src/myclass.h)
SOURCES += $$quote(/home/myusername/projects/src/myclass.cpp)
SOURCES += main.cpp

когда я запускаю make-файл, он работает до тех пор, пока не доберется до части моего main.cpp, где я включаю файл заголовка, а затем он говорит: фатальная ошибка, нет такого файла или каталога

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

Ответы [ 2 ]

4 голосов
/ 09 февраля 2011

Во-первых, использование абсолютных путей в файле проекта - определенно плохая идея.

Если этот класс является частью проекта, но находится в другом каталоге, используйте относительные пути как в файле проекта, так и в директиве #include, используя синтаксис #include "relative/path/myclass.h".

Если этот класс не является частью проекта, вы должны скомпилировать его как библиотеку, а затем использовать qmake со следующими параметрами:

qmake INCLUDEPATH+=/path/to/the/header LIBS+=-L/path/to/the/library

И добавить имя библиотеки в файл проекта:

LIBS += -llibraryname

Тогда вы можете указать свой класс как #include <myclass.h>, обратите внимание на синтаксис <>.

Обратите внимание, что специфичные для рабочей станции данные идут в командной строке, а независимое от рабочей станции имя библиотеки - в файле проекта. Если вы хотите указать разумное расположение по умолчанию, вы можете использовать следующий прием:

unix { # default path for the Unix systems
  isEmpty(MYLIB_PATH): MYLIB_PATH = /usr/local
}
INCLUDEPATH += $$MYLIB_PATH/include
LIBS += -L$$MYLIB_PATH/lib

Тогда, если хотите, вы все равно можете переопределить путь из командной строки:

qmake MYLIB_PATH=/home/myusername/mylib
0 голосов
/ 10 февраля 2011

В итоге я понял это с небольшой помощью @Sergey Tachenov.Я изменил его с абсолютного пути на относительный путь, используя «../».

HEADERS += ../src/classfile.h
SOURCES += ../src/classfile.cpp
SOURCES += main.cpp

Я также изменил включаемый файл main.cpp, чтобы он был

#include "../src/classfile.h"

после внесения этих изменений, он компилировался и работал правильно.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...