我有一个用QMake构建的Qt项目(称为"扫描仪"),我有2个子项目:一个名为"scannerlib"的静态库和一个使用该库的应用程序,称为"app"(目前,它只是一个主要的.cpp文件)
我的"scanner"文件夹包含文件scanner.pro:
QT += core testlib
QT -= gui
CONFIG += c++14
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = subdirs
SUBDIRS = app scannerlib
app.depends = scannerlib
Run Code Online (Sandbox Code Playgroud)
和两个子文件夹,包含.pro文件和源文件相关.scannerlib/scannerlib.pro:
TARGET = scannerlib
TEMPLATE = lib
CONFIG += staticlib
#I ommited SOURCES and HEADERS here for brevity
Run Code Online (Sandbox Code Playgroud)
app/app.pro:
TARGET = app
TEMPLATE = app
SOURCES = main.cpp
INCLUDEPATH += ../scannerlib
LIBS += -L../scannerlib -lscannerlib
Run Code Online (Sandbox Code Playgroud)
我成功构建了libscanner,但我无法在"app"中链接它.
错误:找不到-lscannerlib
检查后,libscannerlib.a已经成功构建,所以它应该不是问题.如果我删除-lscannerlib,我会得到一个未定义的引用.这似乎合法.
如果我将创建的"libscannerlib.a"从build文件夹移动到scanner/scannerll,这可以让qmake找到它,我可以获得成功的构建.
所以,问题看起来像是来自"-L ../ scannerlib".我应该用qmake在build文件夹中找到lib的方式放在那里?
DESTDIR您可以在您的scannerlib和项目中使用app。
Scannerlib/scannerlib.pro :
TARGET = scannerlib
TEMPLATE = lib
CONFIG += staticlib
DESTDIR = ../bin
Run Code Online (Sandbox Code Playgroud)
应用程序/应用程序.pro:
TARGET = app
TEMPLATE = app
SOURCES = main.cpp
DESTDIR = ../bin
INCLUDEPATH += ../scannerlib
LIBS *= -L$$OUT_PWD/$$DESTDIR -lscannerlib
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |