qmake:没有符号链接和'lib'前缀的构建库

Roh*_*bhu 9 c++ qt qmake libraries

我的应用程序中需要一个非常简单的机制,我的项目被构建为共享库'.so'或'.dll',但我想要的是:

ExampleAppOne.so
Run Code Online (Sandbox Code Playgroud)

我明白了:

libExampleAppOne.so -> libExampleAppOne.so.1.0.0
libExampleAppOne.so.1 -> libExampleAppOne.so.1.0.0
libExampleAppOne.so.1.0 -> libExampleAppOne.so.1.0.0
Run Code Online (Sandbox Code Playgroud)

我甚至不想要'lib'前缀.在.pro文件中,我所能做的就是更改INSTALLS变量(这是因为我的第三个要求是在特定目录中构建库).

另外,我有第四个相关要求:当我要求QLibrary加载库时,我希望它专门搜索一个非常特定的路径中的库和一个与给定的EXACT名称相匹配的库.没有"lib"前缀匹配,没有"版本字符串"搜索,没有查看LD_LIBRARY_PATH ...

任何帮助表示赞赏.

问候,罗恩

Jon*_*ret 5

添加pluginCONFIG变量应该禁用版本控制和生成库的符号链接。

但我不知道禁用前缀的简单方法lib。您可能想深入研究提供的 QMake 规范文件以了解默认处理是如何实现的。

  • 还要执行“CONFIG += no_plugin_name_prefix”(来自[此处](http://lists.qt-project.org/pipermail/interest/2012-June/002798.html))。如果您构建 Python 扩展并且想要强制使用“.so”扩展,则还需要 (Mac/Win)“QMAKE_EXTENSION_SHLIB = so”。 (3认同)

小智 5

将以下内容添加到您的 .pro 文件中

# disables the lib prefix
CONFIG += no_plugin_name_prefix
# disable symlinks & versioning
CONFIG += plugin
Run Code Online (Sandbox Code Playgroud)