原 Qt 交叉編譯的路徑設置

在交叉編譯Qt源碼時,需要設置部署路徑。但是部署路徑有三個變量,分別是-prefix, -extprefix 和-hostprefix。那這三個變量分別是什麼意思呢?

-prefix:目標板的引用路徑。 這個路徑有兩個作用,一個是指定目標機的Qt庫路徑,也就是說,當你把Qt庫部署到目標機時,需要把Qt庫拷貝到這個路徑下,Qt程序就可以自動找到庫。第二個是,如果你沒有指定extprefix, install的時候會把Qt庫部署到sysroot+prefix這個路徑下。

-extprefix:  介於默認會把Qt庫部署到sysroot+prefix路徑下,如果你不想這樣,可以設置extprefix, 這樣Qt庫會部署到這個目錄下而不是sysroot下。可以避免污染sysroot。我個人建議編譯的時候設置-prefix 和-extprefix 就可以了。

-hostprefix: 如果你還有更奇葩的需求,比如qmake等工具不要和Qt庫安裝在一起,那麼這個參數就很適合你。這個參數是指定編譯工具的安裝位置,不包括Qt庫。指定這個變量之後,qmake等工具會安裝在這個目錄下,extprefix下面就不會有這些工具了。我目前沒想到這麼做有啥好處。所以不建議使用。

 

綜上所述,建議編譯時制定兩個路徑,一個是目標板部署路徑-prefix,一個是宿主機部署路徑 -extprefix. 如果不怕污染sysroot的話,指定一個prefix就可以了。

 

sysroot  : 指定了sysroot,編譯器就會去sysroot目錄裏面去找頭文件和庫,否則就會去本機找。設置了這個目錄後,prefix是相對於這個目錄來安裝的,也就是說,make install 的目錄是:${sysyroot}/${prefix}

 

原文:https://blog.csdn.net/love4mario/article/details/80914386  

原文:http://www.360doc.com/content/16/0921/16/6828497_592550617.shtml

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章