【问题标题】:qmake : Build library without the symlinks and 'lib' prefixqmake:构建没有符号链接和'lib'前缀的库
【发布时间】:2011-05-23 18:26:59
【问题描述】:

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

ExampleAppOne.so

我明白了:

libExampleAppOne.so -> libExampleAppOne.so.1.0.0
libExampleAppOne.so.1 -> libExampleAppOne.so.1.0.0
libExampleAppOne.so.1.0 -> libExampleAppOne.so.1.0.0

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

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

感谢任何帮助。

问候, 罗汉

【问题讨论】:

  • 好的,找到第四个要求的解决方案。我必须简单地为它提供一个“绝对路径”,这样它就不会到处寻找图书馆。来源:QLibrary 的 Qt 文档
  • 你能把makefile贴出来吗?

标签: c++ qt libraries qmake


【解决方案1】:

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

# disables the lib prefix
CONFIG += no_plugin_name_prefix
# disable symlinks & versioning
CONFIG += plugin

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 还有CONFIG += no_plugin_name_prefix(来自here)。如果你构建一个 Python 扩展并且你想强制使用 .so 扩展,你还需要 (Mac/Win) QMAKE_EXTENSION_SHLIB = so
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    相关资源
    最近更新 更多