如何将subdirs lib与qmake联系起来
How to link subdirs lib with QMake?
i有一个使用Qmake构建的QT项目(称为" scanner"),在那里我有2个subprojects:一个称为" scannerlib"的静态库和一个使用该lib的应用程序,称为" app"(目前,这只是一个main.cpp文件)
我的"扫描仪"文件夹包含文件scanner.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,但是我无法在"应用程序"中链接它。
错误:找不到-lscannerlib
检查后,libscannerlib.a已成功构建,因此这不是问题。如果我删除-lscannerlib,我会得到一个未定义的参考。这似乎是合法的。
如果我将创建的" libscannerlib.a"从构建文件夹移动到Scanner/Scannerlib,则可以成功构建,这允许Qmake找到它。
因此,问题似乎来自" -l ../scannerlib"。我应该以qmake在构建文件夹中找到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
相关文章:
- qmake:检测目标位宽(32 位或 64 位)
- 收藏品不会在联系时删除
- 使用静态 qmake 的 QT Widget 插件
- 停止与GLIBC的联系,将时间变成__strftime_l
- 将 Boost 与 CMAKE 联系起来时出现问题
- CLion and Qt5: tuning qmake
- Qmake 错误:QT: 图表中的未知模块
- 为没有qmake/VS的Qt Windows应用程序设置.exe图标
- 如何强制Qt QMake项目使用C++98标准?
- 从 qmake 运行脚本以获取内部版本号
- 使用 qmake 构建二进制文件的多个版本
- 无法将格鲁与Cmake联系起来
- fstream.h 中的 STL 命名空间错误与 qmake/make.
- 在QMAKE中编译之前,如何使用可执行文件构建多个标头文件
- 将QMAKE项目转换为CMAKE
- 包括DLL中的OpenVDB;将错误与Visual Studio 2015联系起来
- qmake 从子文件夹添加头文件
- Qt在交叉编译期间构建的示例与编译后运行qmake相比如何?
- 将 qmake 转换为 cmake 时出现链接错误
- 如何将subdirs lib与qmake联系起来