Я сделал проект Qt с двумя подпроектами. Одна из них - статическая библиотека, другая - графическое приложение, использующее статическую библиотеку.Ссылка на внешнюю статическую библиотеку в создателе Qt
Поскольку это проект подпроекта, я указал порядок, в котором построены две части. Начиная с статической библиотеки в дереве проекта, а затем в приложении в дереве проекта. Выполнен с помощью опции CONFIG + =.
Мне также нужна третья внешняя статическая библиотека. Который находится в отдельной директории в моей системе.
Таким образом, для обоих подпроектов добавить следующее оба .pro файлов:
INCLUDEPATH += /local/yrq12edu/local/bpp/dev/include
LIBS += -L/local/yrq12edu/local/bpp/dev/lib -lbpp-seq -lbpp-core
Тогда для приложения подпроекта Я использовал мастера добавления библиотеки связать библиотеку, которая находится в дереве проекта ,
Я написал очень простой графический интерфейс с несколькими надписями и меню «Файл», чтобы проверить, что все работает.
Нажатие кнопки зеленого запуска приводит к успешному запуску приложения, и тестовая функциональность работает хорошо.
Однако, когда я прихожу в папку сборки, дважды щелкните по исполняемому файлу, ничего не произойдет. Я открываю терминал и попытаться запустить его снова:
error while loading shared libraries: libbpp-seq.so.9: cannot open shared object file: No such file or directory
У меня возникли проблемы с пониманием, как это .so являются общими для объектов, я бы подумал, что было бы .а для статического файла, я тоже запутался почему работа с Green Arrow «Run» в Qt Creator будет работать и запускать программу, но при попытке выполнить исполняемый файл в приведенной выше ошибке. Есть что-то еще, что мне нужно сделать?
EDIT:
Библиотека третья сторона сообщает, как связать либо динамически или статически с г ++ командует.
Dynamic Рычажный:
g++ biohello.cpp \
-o biohello \
-I$bpp_dir/include \
-L$bpp_dir/lib \
-lbpp-seq -lbpp-core
Статическая Связь:
g++ biohello.cpp \
-o biohello \
--static \
-I$bpp_dir/include \
-L$bpp_dir/lib \
-lbpp-popgen -lbpp-phyl -lbpp-seq -lbpp-core
strip biohello
Я был в состоянии статически связать библиотеки для программ командной строки со второй командой G ++. Я бы хотел добиться того же, но с Qt Creator для GUI-приложения.
UPDATE:
Удаление двух линий, используемых:
INCLUDEPATH += /local/yrq12edu/local/bpp/dev/include
LIBS += -L/local/yrq12edu/local/bpp/dev/lib -lbpp-seq -lbpp-core
из обоих .pro файлов и попытки мастера добавления библиотеки, чтобы добавить файлы .a извне, в результате добавления:
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../local/bpp/dev/lib/release/ -lbpp-seq
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../local/bpp/dev/lib/debug/ -lbpp-seq
else:unix: LIBS += -L$$PWD/../../local/bpp/dev/lib/ -lbpp-seq
INCLUDEPATH += $$PWD/../../local/bpp/dev/include
DEPENDPATH += $$PWD/../../local/bpp/dev/include
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/release/libbpp-seq.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/debug/libbpp-seq.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/release/bpp-seq.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/debug/bpp-seq.lib
else:unix: PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/libbpp-seq.a
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../local/bpp/dev/lib/release/ -lbpp-core
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../local/bpp/dev/lib/debug/ -lbpp-core
else:unix: LIBS += -L$$PWD/../../local/bpp/dev/lib/ -lbpp-core
INCLUDEPATH += $$PWD/../../local/bpp/dev/include
DEPENDPATH += $$PWD/../../local/bpp/dev/include
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/release/libbpp-core.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/debug/libbpp-core.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/release/bpp-core.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/debug/bpp-core.lib
else:unix: PRE_TARGETDEPS += $$PWD/../../local/bpp/dev/lib/libbpp-core.a
к .pro файлов, но затем нажать Run результатов в error while loading shared libraries: libbpp-seq.so.9: cannot open shared object file: No such file or directory
Я не пытался включить файлы .so, только.файлы с помощью Add Library Wizard: S
Попытайтесь также добавить 'PRE_TARGETDEPS + =/local/yrq12edu/local/bpp/dev/lib/libbpp-seq.a' и' PRE_TARGETDEPS + =/local/yrq12edu/local/bpp/dev/lib/libbpp- core.a' – Nejat