1. 程式人生 > >QtEmbedded-4.8.6-arm 編譯選擇從 動態庫變化到靜態庫 時,生成的Makefile連結庫路徑下如果有動態庫和靜態庫,優先選擇動態庫編譯應用

QtEmbedded-4.8.6-arm 編譯選擇從 動態庫變化到靜態庫 時,生成的Makefile連結庫路徑下如果有動態庫和靜態庫,優先選擇動態庫編譯應用

問題:QtEmbedded-4.8.6-arm 編譯選擇從 動態庫到靜態庫 時,發現的一個疑惑:,生成的Makefile連結庫路徑下如果有動態庫和靜態庫,優先選擇動態庫編譯應用

具體現象:

我最初是使用動態庫的 QtEmbedded-4.8.6-arm (編譯器選擇時,是 ./configure  -release -shared  )

變化成靜態庫的 QtEmbedded-4.8.6-arm (編譯器選擇時,是 ./configure   -release -static )

所以在目錄下我保留了 一個庫的2個狀態:靜態庫和動態庫

然後我隨便弄了一個工程  untitled.pro

qmake untitled.pro --->生成 Makefile

Makefile裡的LIBS 指向 安裝的目錄 

make clean;make; ---->生成 target檔案 static 大小是 29k 大小明顯是連結了動態庫的。

arm-linux-readelf -d static ----->  提示需要連線 QtGui 等 動態庫

進行修好Makefile 將路徑指向只有靜態庫的資料夾,例如本地

make clean;make ;---->生成 static  大小為 7.3M ,正常(我進行過裁剪)

arm-linux-readelf -d static -----> 沒有 提示需要連線 QtGui 等 庫

可以直接執行。

思考:

所以同個libs目錄下,如果存在同一個庫2種形態,會優先選擇動態庫?暫時這個結論