代码之家  ›  专栏  ›  技术社区  ›  rasjani

当TEMPLATE=lib时,如何强制qmake不创建指向目标的符号链接?

  •  5
  • rasjani  · 技术社区  · 16 年前

    我有一个(部分)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

    5 回复  |  直到 6 年前
        1
  •  6
  •   Bhargav Rao rlgjr    9 年前

    您可以将以下内容添加到pro文件中:

    CONFIG += unversioned_libname unversioned_soname
    

        2
  •  5
  •   swarfrat    16 年前

    如果用no op覆盖QMAKE_LN_SHLIB变量,它将不会创建符号链接。

    QMAKE_LN_SHLIB       = :
    
        3
  •  2
  •   metator    13 年前

    我试着修改swarfrat发布的建议,但效果不错,但它输出了一个错误,并显示了一条(相当有用的)消息:

    Error 1 (ignored)
    

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

    可以找到有关此qmake变量的更多信息 here .

        4
  •  1
  •   BastiBen    16 年前

    从我在资料中发现的情况来看,如果你加上 plugin 要进行配置,将只生成库,而不生成符号链接。

        5
  •  0
  •   Caleb Huitt - cjhuitt    16 年前

    如果你能给我们一些提示,告诉我们为什么这很重要。。。

    至于如何,你可能会考虑一个脚本,将重新安排事情的喜好,在运行过程结束时运行。