QtEmbedded-4.8.6-arm 編譯選擇從 動態庫變化到靜態庫 時,生成的Makefile連結庫路徑下如果有動態庫和靜態庫,優先選擇動態庫編譯應用
阿新 • • 發佈:2018-11-27
問題: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種形態,會優先選擇動態庫?暫時這個結論