【发布时间】: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:如果我使用绝对路径,那么一切都很好,没有任何问题。
【问题讨论】: