Linux 如何避免在.so文件名中包含版本号
我正在尝试使用qmake在Linux上构建一个动态库。这是我的.pro文件:Linux 如何避免在.so文件名中包含版本号,linux,qt,shared-libraries,qmake,Linux,Qt,Shared Libraries,Qmake,我正在尝试使用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|
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
文件而没有链接?你要找的是制作一个插件
将CONFIG+=plugin
添加到项目文件中,qmake将生成一个生成libFoo.so
文件的Makefile,没有编号的链接在查看qmake源代码后,我发现nix的CONFIG+=unversioned\u libname
和windows的CONFIG+=skip\u target\u version\u ext
。作为一个附加选项,您可以在.pro文件中使用“version=(不带引号)指定一个空版本号。我只能证明它在Windows下工作。请不要在标题中写标签。谢谢,艾蒂安!回到2010年,这不是一个规则;)因为标签系统的存在,这总是很愚蠢!!这是引入了未版本的\u libname
的补丁。它从Qt5.3开始工作,您还需要CONFIG+=unversioned\u soname
,以便在链接时不会查找foo.so.1
。