【发布时间】:2015-12-15 09:04:58
【问题描述】:
我想分发我使用 Qt 制作的 SDK。 为此,我制作了一个脚本来生成一个包含我的库(libmysdk.so 等)的 tarball,以及一个带有 qmake 二进制文件的嵌入式无头“最小 Qt”(-no-gui、-no-widgets 等) .
这里的目标是允许用户使用我的 Sdk 开发应用程序,用他想要的任何内容填充 .pro,并让他调用 qmake 以生成适当的 Makefile。
我的问题是生成的 Makefile 包含指向我在本地编译我的 qmake 的位置(/home/john/mystuff/myproject 等)的绝对路径和相对路径,使其根本无法移植。
在 Makefile 中:
CC = /opt/arm-2015.02-ct-ng/bin/arm-unknown-linux-gnueabi-gcc
[...]
INCPATH = -I. -Iinclude -I../../home/john/mystuff/myproject/builddir
我正在寻找一种方法来强制 qmake 使用我在 tarball 中提供的“嵌入式 Qt 安装”。
我尝试了两件事:
./qmake -query "QT_INSTALL_HEADERS"
将打印(错误的)绝对路径。但是
./qmake -set "QT_INSTALL_HEADERS" "foo/bar/something"
不会更新 QT_INSTALL_HEADERS 值。我的猜测是内置值不能在 qmake 二进制文件中更改,对吗?
我的第二次尝试是使用这个https://github.com/qtproject/qtsdk 更具体地说是 patch_qmake_qt_key.py,其目标显然是更新二进制文件中的一些键(无论是否内置)。 但我尝试了几个“键”名称,总是出现同样的错误:
Could not find given key: QT_INSTALL_HEADERS
Could not find given key: INSTALL_HEADERS
Could not find given key: PLEASE_WORKS
etc.
(是否有可以找到这些“键名”的地方/文档?)
有没有办法在 qmake 编译之后(或者之前)设置路径,最好是相对于 tarball 根目录,或者如果不可能,设置绝对路径的方法(可能通过调用 ./install.sh使用 pwd 和一些东西的组合更新 qmake 二进制文件。
非常感谢!
【问题讨论】:
-
我不明白这个问题和你想要达到的目标。一个不是要共享生成的 Makefile,而是要在本地运行 qmake 以从共享的 .pro 文件中生成一个新的。 QMake 也将使用它所属的 Qt。
-
我不想共享 makefile,我想共享 .pro(用户将编辑它以添加自己的文件)和 qmake 二进制文件。但我想用我的本地 Qt 安装生成 qmake 二进制文件,然后“修补”它以使用我在 tarball 中提供的嵌入式 Qt。