我们正在使用Qt的商业许可构建Windows和Mac应用程序,我们正在使用git克隆构建。
我们使用Hudson和可能的几个构建代理进行了构建设置,我想为Windows做的至少是构建一次然后将构建Qt部署到每个代理(而不是必须在每个代理上构建Qt)剂)。但是,似乎构建的Qt不喜欢被移动或复制。
有解决方法吗?我们有一个想法是,是否有一些设置会构建Qt所以它类似于他们的二进制分布,但我看不到这样做的方法。
答案 0 :(得分:5)
发布的Qt二进制文件的工作方式是:
Qt内置于一个非常长的构建路径中(例如在Windows上,c:\Qt\______________padding__________for_________packaging________________).
然后它被打包到安装程序中。安装程序包含一个自定义插件,它在安装时扫描二进制文件并修补Qt二进制文件,用用户的安装路径替换长构建路径。注意,二进制文件的大小不能更改,因此用户的安装路径必须始终短于构建路径......
在Mac和Linux上,还有类似的rpaths。 rpath使用$ORIGIN
使其相对,或者像上面的路径一样进行二进制修补。
制作二进制包的脚本非常单一,并且不容易提取这个逻辑......
对于您的用例,我建议您始终在可预测的路径中构建Qt。始终在c:\Qt_test
构建Qt并在每个代理上部署到c:\Qt_test
。缺点是Hudson可能不太擅长自动清理它,所以你必须自己编写脚本。