В последние дни я пытался понять, как работает qmake и я застрял.
Я хочу проект со следующей структурой:
корень
Все, что я хотел, это проверить библиотеку json. Я создал новый пустой проект в Qt Creator 2.3.0 и установил все параметры, чтобы исполняемый файл работал. Протестировал что хотел и закрыл приложение.
Позже, когда я снова открыл Qt Creator, я загрузил файл .pro и с удивлением, когда я пытаюсь запустить проект, я получаю это сообщение: «Не указан исполняемый файл». : | В этом случае я перешел на вкладку проекта и вручную выбрал исполняемый файл, но, как и ожидалось, при попытке запустить его я получил сообщение об ошибке «При загрузке общих библиотек: libjson.so: не могу открыть файл общего объекта: Нет такого» файл или каталог ". Это ожидалось, так как LD_LIBRARY_PATH не установлен (как будто я запустил его из cli).
Похоже, что .pro файл не анализируется должным образом, потому что в первый раз, на вкладке проекта, когда я выбирал вкладку Run, я видел сообщение: "Parsing .pro file", а затем запущенная конфигурация будет заполнен и выделен серым цветом, так что это означает, что LD_LIBRARY_PATH был добавлен Qt Creator после анализа файла .pro.
Теперь мой квест: почему файл .pro был проанализирован правильно с первого раза?
Вот файл .pro:
!include(../../common.pri){
error(Couldn't find the common.pri file!)
}
TEMPLATE = app
SOURCES += testjson.cpp
CONFIG += console
TARGET = testjson
CONFIG(release, debug|release) {
DESTDIR = $$BinaryDir/Release
} else {
DESTDIR = $$BinaryDir/Debug
}
LIBS += -L$$LibraryDir -ljson
INCLUDEPATH += $$DefaultInclude
DEPENDPATH += $$LibraryDir
PS: Решение состоит в том, чтобы вручную добавить LD_LIBRARY_PATH в среду здания, но я считаю, что это не правильный способ сделать это.