簡體   English   中英

如何將子目錄lib與QMake鏈接?

[英]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?

您可以在scannerlibapp項目中都使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM