如何在linux 32位機器編譯64位程序


編譯64位程序,不一定要編譯機器是64位的,但是32位機器默認安裝的gcc編譯環境還是不能用來編譯64位程序。

編譯64位程序,需要加上-m64編譯器參數,默認安裝的gcc已經支持該參數,但是缺少64位機器指令相關的文件,所以不能編譯,會出現下面的錯誤

[plain]  view plain  copy
 
  1. In file included from /usr/include/features.h:378,  
  2.                  from /usr/include/assert.h:37,  
  3.                  from ../../../include/tinyxml/tinystr.h:42,  
  4.                  from ../../../src/tinyxml/tinystr.cpp:32:  
  5. /usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: 沒有那個文件或目錄  

這時候需要安裝 gcc所有支持文件 sudo apt-get install gcc-multilib

[plain]  view plain  copy
 
  1. 將會安裝下列額外的軟件包:  
  2.   cpp-4.4 g++-4.4 gcc-4.4 gcc-4.4-base gcc-4.4-multilib lib64gcc1 lib64gomp1 libc6-amd64 libc6-dev-amd64 libgcc1 libgomp1  
  3.   libstdc++6 libstdc++6-4.4-dev  
  4. 建議安裝的軟件包:  
  5.   gcc-4.4-locales g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg libmudflap0-4.4-dev libgcc1-dbg libgomp1-dbg libmudflap0-dbg  
  6.   libcloog-ppl0 libppl-c2 libppl7 lib64mudflap0 libstdc++6-4.4-doc  
  7. 下列【新】軟件包將被安裝:  
  8.   gcc-4.4-multilib gcc-multilib lib64gcc1 lib64gomp1 libc6-amd64 libc6-dev-amd64  
  9. 下列軟件包將被升級:  
  10.   cpp-4.4 g++-4.4 gcc-4.4 gcc-4.4-base libgcc1 libgomp1 libstdc++6 libstdc++6-4.4-dev  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM