歡迎您光臨本站 註冊首頁

將qt程序達成rpm包

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

使用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

[火星人 ] 將qt程序達成rpm包已經有568次圍觀

http://coctec.com/docs/linux/show-post-186634.html