红联Linux门户
Linux帮助

将qt程序达成rpm包

发布时间:2008-05-16 10:30:25来源:红联作者:Ooiqtd
使用qt开发,最后打成rpm包是遇到了总是将文件直接装到/usr/lib下的情况,而非$RPM_BUILD_ROOT/usr/lib,经过继争的启发和自己的探索终于找到了解决办法。

1、建立pro文件
调用qmake -project将生成与目录同名的.pro文件。在pro文件中TEMPLATE = app是默认构建类型,如果项目是一个库,就将app换为lib。另外一个重要的变量是TARGET = ,这是目标文件的名字。如果构建的是lib、TARGET = mytarget,则最终目标为libmytarget.so.(version).

安装的设置基本两步,一是目标的files,二是目标的paths,也就是安装路径。我认为就是两种,第一可执行文件或者生成库,这是默认构建目标;第二是头文件,这个target的名字可以自己设置,如我的pro文件中的mytest:

target.path = /usr/lib
mytest.files = $$HEADERS
mytest.path = /usr/include
INSTALLS += target mytest

2、spec文件中的设置
这里把我搞的很迷糊,后来在继争启发下DESTDIR在Makefile中要预先设置得到启发,终于找到了INSTALL_ROOT这个qt4中默认的安装前缀。

前面的字段没什么改变都是%setup qmake make什么的,就是在%install这里,make install不用DESTDIR,而是INSTALL_ROOT才能得到正确的结果,spec文件如下:

%prep
%setup -n %{name}

%build
qmake
make

%install
make INSTALL_ROOT=$RPM_BUILD_ROOT install

%files
文章评论

共有 1 条评论

  1. linshao.Solin 于 2010-01-08 14:12:06发表:

    谢谢分享啊