【问题标题】:How to avoid having version numbers in .so file name如何避免 .so 文件名中包含版本号
【发布时间】:2011-04-14 20:13:41
【问题描述】:

我正在尝试使用 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.sosqxUiBase.so.1sqxUiBase.so.1.0)指向它。我怎样才能做到只有sqxUiBase.so 文件而没有链接?

【问题讨论】:

  • 请不要在标题中写标签。谢谢,过去的艾蒂安!
  • 回到 2010 年,这不是一个规则;)
  • 嗯,一直很傻,因为标签系统的存在!!

标签: linux qt shared-libraries qmake


【解决方案1】:

您正在寻找的是plugin

CONFIG += plugin添加到你的项目文件中,qmake会生成一个生成libFoo.so文件的Makefile,没有编号的链接

【讨论】:

  • 作为附加选项,您可以在 .pro 文件中使用“VERSION="(不带引号)指定一个空版本号。我只能证明它在 Windows 下工作。
【解决方案2】:

查看 qmake 源代码后,我发现 CONFIG += unversioned_libname 用于 nix,CONFIG += skip_target_version_ext 用于 Windows。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 2020-06-24
  • 2012-05-28
  • 1970-01-01
  • 2016-09-10
相关资源
最近更新 更多