相关疑难解决方法(0)

如何避免在.so文件名中包含版本号

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

sqxUiBase.pri文件包含需要构建的文件列表.

现在,问题是无论我做什么,结果文件总是被命名sqxUiBase.so.1.0.0,有一堆符号链接(sqxUiBase.so,sqxUiBase.so.1sqxUiBase.so.1.0)指向它.我怎样才能使它只有一个sqxUiBase.so文件而没有链接?

linux qt qmake shared-libraries

14
推荐指数
2
解决办法
6233
查看次数

为什么库名在其名称中获得额外的0?

我有一个像项目文件这样的小Qt项目:

TEMPLATE = lib
TARGET = record32
VERSION = 0.0.1
DEPENDPATH += .
INCLUDEPATH += .

CONFIG += shared
SOURCES += recorder.cpp
HEADERS += recorder.h
Run Code Online (Sandbox Code Playgroud)

当我从中编译库时qmake && nmake,它会产生文件

record32.obj
record320.lib
record320.dll
...
Run Code Online (Sandbox Code Playgroud)

为什么在lib和dll名称中添加了额外的0?

生成的makefile似乎没有附加它,而只是假设它,Makefile.Release它只是说:

####### Files

SOURCES       = recorder.cpp release\moc_recorder.cpp
OBJECTS       = release\recorder.obj release\moc_recorder.obj
DIST          = 
QMAKE_TARGET  = recorder
DESTDIR        = release\ #avoid trailing-slash linebreak
TARGET         = record320.dll
DESTDIR_TARGET = release\record320.dll
Run Code Online (Sandbox Code Playgroud)

如何防止它并按我的意愿命名我的库?

(注意手动修复makefile.release不是一个可以接受的解决方案)

qt nmake makefile qt4

2
推荐指数
2
解决办法
1228
查看次数

标签 统计

qt ×2

linux ×1

makefile ×1

nmake ×1

qmake ×1

qt4 ×1

shared-libraries ×1