繁体   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