我正在尝试使用qmake在Linux上构建动态库。这是我的.pro文件:
TEMPLATE = lib
TARGET = sqxUiBase
QT += core gui
CONFIG += dll
INCLUDEPATH += ../../public/include
DEPENDPATH += .
UI_DIR += ../GeneratedFiles
RCC_DIR += ../GeneratedFiles
CONFIG(release, debug|release) {
DESTDIR = ../lib/release
LIBS += -L"../lib/release"
MOC_DIR += ../GeneratedFiles/release
OBJECTS_DIR += release
} else {
DESTDIR = ../lib/debug
LIBS += -L"../lib/debug"
MOC_DIR += ../GeneratedFiles/debug
OBJECTS_DIR += debug
}
include(sqxUiBase.pri)
sqxUiBase.pri文件包含需要构建的文件列表。
现在,问题在于,无论我做什么,生成的文件总是以sqxUiBase.so.1.0.0
命名,并带有一堆符号链接(sqxUiBase.so
,sqxUiBase.so.1
和sqxUiBase.so.1.0
)指向它。我怎样才能使它只有一个sqxUiBase.so
文件而没有链接?
答案 0 :(得分:18)
您正在寻找的是plugin
。
将CONFIG += plugin
添加到项目文件中,qmake将生成一个构建libFoo.so
文件的Makefile,没有编号的链接
答案 1 :(得分:10)
在查看qmake源代码后,我找到了{i}的CONFIG += unversioned_libname
和Windows的CONFIG += skip_target_version_ext
。