Qt 更改通过qmake添加到Makefile的Makefile中变量的位置

Qt 更改通过qmake添加到Makefile的Makefile中变量的位置,qt,ubuntu,qmake,Qt,Ubuntu,Qmake,我想将库链接到qmake中的程序,因此我将在qmake文件中使用以下行: LIBS+=$${localizer_path}liblocalize.so #1 (请注意,localizer\u path已确定,其值为some/path) 当我使用Ubuntu进行开发时,我必须在LD_library_路径中包含库路径(以便程序可以在运行时找到链接的库),但我想将其放入qmake文件中,因此我使用了以下技巧: QMAKE_LFLAGS += -Wl,--rpath=\\\$\path_to_lo

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

LIBS+=$${localizer_path}liblocalize.so   #1
(请注意,
localizer\u path
已确定,其值为
some/path

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

QMAKE_LFLAGS += -Wl,--rpath=\\\$\path_to_localizer  #2
在上面的
path\u to\u localizer
行中,内容与
$${localizer\u path}
相同,但由于该行最终将在
Makefile
中使用,我无法直接使用它,因此我从qmake文件向
Makefile
添加了一个变量,如下所示:

QMAKE_EXTRA_VARIABLES = localizer_path  #3
现在,在生成的
Makefile
中,我可以看到下面的一行添加了:

EXPORT_localizer_path = some/path  #4
现在,我可以使用qmake中的
EXPORT\u localizer\u path
,如下所示:

QMAKE_LFLAGS += -Wl,--rpath=\\\$\$(EXPORT_localizer_path)  #2 has changed
一切正常,除了在Makefile中的
#2
之后出现
#4
位置,就像我在初始化它之前使用
导出本地化器路径一样。我想简明扼要地说,我们能确定由
QMAKE_EXTRA_VARIABLES
创建的变量的顺序吗



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

我找到了一种处理问题的方法:如果我们使用全局变量作为库的路径,那么设置
rpath
不是一个好主意,如下所示:

QMAKE_LFLAGS += -Wl,--rpath=\\\$\CUSTOMPATH
相反,我们可以使用
QMAKE\u RPATHDIR

QMAKE_RPATHDIR += $${CUSTOMPATH}