5

我有一个(部分)qmake 项目文件,如下所示:

TEMPLATE=lib
TARGET=whatever
SOURCES=whatever.cpp
HEADERS=whatever.h

这将 - 至少默认情况下 - 创建一个库和几个符号链接,如下所示:

libwhatever.so -> libwhatever.so.0.1.0
libwhatever.so.0 -> libwhatever.so.0.1.0
libwhatever.so.0.1 -> libwhatever.so.0.1.0
libwhatever.so.0.1.0

libwhatever.so.0.1.0是实际的库二进制文件,其余的只是符号链接。

我想要实现的是根本没有创建任何符号链接或其他方式的顺序,因此这libwhatever.so将是实际的二进制文件,其余的是符号链接。

4

5 回答 5

6

您可以将以下内容添加到您的专业文件中:

CONFIG += unversioned_libname unversioned_soname

我已经测试成功了。

于 2016-10-26T07:25:10.560 回答
5

如果您使用无操作覆盖 QMAKE_LN_SHLIB 变量,它将不会建立符号链接。

QMAKE_LN_SHLIB       = :
于 2010-03-20T20:24:35.237 回答
2

我尝试了 swarfrat 发布的建议并且它有效,但它输出错误并带有(相当有帮助的)消息:

Error 1 (ignored)

因此,这是删除符号链接而不产生任何错误的另一种方法:

unix: QMAKE_POST_LINK = find $$DESTDIR -maxdepth 1 -type l -exec rm -f {} \;

关于这个 qmake 变量的更多信息可以在这里找到。

于 2012-06-15T02:26:48.080 回答
1

我研究了 qmake 源和 mkspecs,但似乎符号链接的生成是相当硬连线的。

从我在源代码中找到的内容来看,如果您添加plugin到 CONFIG,似乎只会生成库,而没有符号链接。

不过,我不能告诉你这样做是否有任何其他副作用。但这似乎是摆脱符号链接而无需编写在构建后运行的脚本的唯一方法。

于 2009-11-27T16:06:00.800 回答
0

如果你给我们一些关于它为什么重要的提示可能会有所帮助......

至于如何,您可能会考虑在构建过程结束时运行的脚本,该脚本将根据您的喜好重新排列事物。

于 2009-07-02T17:40:20.080 回答