[英]How to link subdirs lib with QMake?
我有一個用QMake構建的Qt項目(稱為“ scanner”),其中有2個子項目:名為“ scannerlib”的靜態庫和使用該lib的應用程序“ app”(目前,這只是一個主程序)。 .cpp文件)
我的“ scanner”文件夾包含文件printer.pro:
QT += core testlib
QT -= gui
CONFIG += c++14
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = subdirs
SUBDIRS = app scannerlib
app.depends = scannerlib
和兩個子文件夾,分別包含.pro文件和相關的源文件。 Scannerlib / scannerlib.pro:
TARGET = scannerlib
TEMPLATE = lib
CONFIG += staticlib
#I ommited SOURCES and HEADERS here for brevity
app / app.pro:
TARGET = app
TEMPLATE = app
SOURCES = main.cpp
INCLUDEPATH += ../scannerlib
LIBS += -L../scannerlib -lscannerlib
我成功構建了libscanner,但是無法在“ app”中鏈接它。
錯誤:找不到-lscannerlib
檢查后,libscannerlib.a已成功構建,因此應該沒有問題。 如果刪除-lscannerlib,則會得到未定義的引用。 這似乎合法。
如果將創建的“ libscannerlib.a”從構建文件夾移動到scanner / scannerlib,這將使qmake能夠找到成功的構建。
因此,該問題看起來像是來自“ -L ../ scannerlib”。 我應該怎樣放置qmake才能在build文件夾中找到lib?
您可以在scannerlib
和app
項目中都使用DESTDIR
。
Scannerlib / scannerlib.pro:
TARGET = scannerlib
TEMPLATE = lib
CONFIG += staticlib
DESTDIR = ../bin
app / app.pro:
TARGET = app
TEMPLATE = app
SOURCES = main.cpp
DESTDIR = ../bin
INCLUDEPATH += ../scannerlib
LIBS *= -L$$OUT_PWD/$$DESTDIR -lscannerlib
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.