最近在除錯**商提供的**鏈時出現了一些問題,首先,初始化過程失敗,開啟執行指令碼追溯發現是所在目錄中有libc和?暫時忘記,導致ls命令執行報錯,於是編譯執行失敗,ldd命令檢視gcc的鏈結庫,發現有ld-linux的軟鏈結路徑是乙個非本機路徑,應該是sdk提供者的目錄。將ls命令執行路徑修改,引數作為目標路徑後初始化就成功,gcc命令也能正常執行了,但是這怎麼阻止乙個女程式猿刨根問底的心呢?
帶著疑問回到了初始化指令碼,大部門是一些find sed 之類的沒有實質操作的命令和一些正規表示式,只是呼叫了乙個python指令碼檔案,開啟這個python指令碼,終於謎題揭曉,它主要執行了如下操作:
之前編譯乙個交叉編譯環境的記憶體洩漏檢測工具,裡面缺少elf檔案解析我庫,在網上找了半天(linux主機直接安裝就好,源**網上很少)。經過這件小事看elf檔案很像也沒有那麼難,有一定的理解之後,python居然就可以搞定。
gcc編譯流程,交叉編譯
gcc編譯過程 預編譯 gcc e c原始檔 o 輸出i目標檔案 編譯階段 gcc s i原始檔 o 輸出s目標檔案 彙編階段 gcc c s原始檔 o 輸出o目標檔案 gcc編譯例項 gcc g wall c原始檔 o 輸出可執行檔案 g表示在生成的目標檔案中帶除錯資訊,wall表示開啟編譯器常用...
gcc 4 8 3交叉編譯
1.環境 ubuntu 16.04 2.獲取 wget mirrors.ustc.edu.cn gnu gcc gcc 4.8.3 gcc 4.8.3.tar.bz2 3.解壓 tar xvf gcc 4.8.3.tar.bz2 4.切換目錄 cd gcc 4.8.3 contrib downloa...
安裝GCC交叉編譯器
照著這個文件安裝 2.解壓,並放置在自己需要的資料夾內 1 sudo tar zxvf gcc linaro arm linux gnueabihf 4.9.tar.gz 3.配置環境變數path 1.編輯bash.bashrc檔案 1 sudo gedit bashrc 2.在檔案中新增變數 1 ...