❶ linux 升級openssl遇到的問題。
你第一張圖不是報錯了嘛,加上-fPIC參數編譯即可。
./config -fPIC
make && make install
❷ 編譯移植busybox出錯,arm-linux-gcc版本4.3.3 busybox版本1.16.0 錯誤代碼如下:
找不到鏈接庫,不這些都是數學庫,加參數 -lm 應該就能解決。
但編譯過程這個東西應該是自己加。
busybox 一般都是靜態的,編譯靜態程序,很多時候需要他以來的函數庫也是靜態的。你這個問題應該是編譯環境不匹配。你編譯了 uclibc 並且正確安裝了沒?
不過話說,不過是個編譯,人家本來就支持 arm ,「移植」這兩個字應該是不需要用了。
❸ 為什麼使用gcc hello.c -fpie -pie -shared -o hello 編譯出來
pie 選項用於編譯可執行程序,而非lib
❹ gcc -shared gcc -static 這兩個命令分別起什麼作用
其中後面的都是gcc的命令參數,第一個表示的是調用動態庫,第二個static表示的是編譯的時候禁止調用動態庫,此時就是說完全編譯出的東西是比較大的,
❺ makefile 生成動態庫和靜態庫的區別
生成動態庫的時候要注意,編譯生成目標文件的時候加上-fPIC參數,生成位置無關的可重定位代碼,然後鏈接的時候加上-shared生成動態共享庫。比如一個hello.c,生成靜態庫:
gcc-ohello.o-chello.c
arrcslibhello.ahello.o
生成動態庫的命令:
gcc-fPIChello.o-chello.c
gcc-shared-olibhelllo.sohello.o
還有一個區別是:靜態庫參與鏈接過程,而動態庫不鏈接到可執行文件中,可執行程序在運行的時候,對應的動態庫也要載入到內存中,否則可執行程序運行不了。
更多詳細細節,可以網路搜索視頻教程:Makefile工程實踐