【问题标题】:Change position of a variable in Makefile which is added to the Makefile via qmake更改通过 qmake 添加到 Makefile 中的 Makefile 中变量的位置
【发布时间】:2020-10-28 13:09:31
【问题描述】:

我想将一个库链接到qmake 中的一个程序,所以我将在qmake 文件中使用以下行:

LIBS+=$${localizer_path}liblocalize.so   #1

(请注意localizer_path已经确定,其值为some/path

由于我使用 Ubuntu 进行开发,我必须在 LD_LIBRARY_PATH 中包含库路径 (以便程序可以在运行时找到链接的库) 但我想将其放入 qmake 文件中,所以我使用了这个技巧:

QMAKE_LFLAGS += -Wl,--rpath=\\\$\path_to_localizer  #2

上面这行path_to_localizer的内容和$${localizer_path}是一样的,但是由于最后一行会用到Makefile所以不能直接使用,所以我给Makefile添加了一个变量来自qmake 文件如下行:

QMAKE_EXTRA_VARIABLES = localizer_path  #3

现在在生成的Makefile 中,我可以看到添加了以下行:

EXPORT_localizer_path = some/path  #4

现在我可以使用来自 qmake 的EXPORT_localizer_path,如下所示:

QMAKE_LFLAGS += -Wl,--rpath=\\\$\$(EXPORT_localizer_path)  #2 has changed

一切都很好,除了 #4 位置出现在 Makefile 中的 #2 之后,就像我在初始化它之前使用 EXPORT_localizer_path 一样。我想简洁一点,我们可以确定QMAKE_EXTRA_VARIABLES创建的变量的顺序吗?


注意1:如果我使用绝对路径,那么一切都很好,没有任何问题。

【问题讨论】:

    标签: qt ubuntu qmake


    【解决方案1】:

    我找到了解决问题的方法:如果我们使用全局变量作为库的路径,那么将rpath 设置如下:

    QMAKE_LFLAGS += -Wl,--rpath=\\\$\CUSTOMPATH
    

    相反,我们可以使用QMAKE_RPATHDIR

    QMAKE_RPATHDIR += $${CUSTOMPATH}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 2017-03-21
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多