1. 程式人生 > >linux 用ld連結nasm編譯的elf格式的.o檔案報錯

linux 用ld連結nasm編譯的elf格式的.o檔案報錯

編譯命令:

nasm -f elf hello.asm -o hello.o

ld -s hello.o -o hello

報錯資訊:

ld: i386 architecture of input file `hello.o' is incompatible with i386:x86-64 output

解決方法:

命令列輸入:>ld -m elf

                        ld: unrecognised emulation mode: elf
                        Supported emulations: elf_x86_64 elf32_x86_64 elf_i386

i386linux elf_l1om elf_k1om i386pep i386pe

根據輸出選擇對應的架構選項,將連結命令修改為:ld -m elf_i386 -s -o hello hello.o

如果需要連結gcc編的.o檔案,則gcc編譯命令需要加上-m32引數,如:gcc -m32 -c -o bar.o bar.c

詳見:

http://www.linuxquestions.org/questions/programming-9/assembly-error-i386-architecture-incompatible-with-i386-x86-64-output-827609/

http://www.ithao123.cn/content-5258444.html

相關推薦

linux ld連結nasm編譯elf格式的.o檔案

編譯命令: nasm -f elf hello.asm -o hello.o ld -s hello.o -o hello 報錯資訊: ld: i386 architecture of input file `hello.o' is incompatible with i3

kettle-linux環境下部署kettle,執行kitchen.sh檔案後安裝 libwebkitgtk,提示沒有可用軟體包libwebkitgtk。

執行./kitchen.sh 報錯資訊: [[email protected] data-integration]# ./kitchen.sh ##########################################################

解決 linux編譯.sh檔案 “[: XXXX: unexpected operator” 問題

原因:linux下能正常執行的指令碼,在ubuntu系統中都會編譯報錯,因為二者使用的直譯器不一同導致 Linux:.sh ubuntu:.dash 因為ubuntu預設的sh是連線到dash的,又因為dash跟bash的不相容所以出錯了.執行時可以把sh換成bash檔

解決 linux編譯make檔案“/bin/bash^M: 壞的直譯器:沒有那個檔案或目錄” 問題

        PS背景:我在公司做sdk 的pc端開發,所以經常會在win下編譯通過之後跑到linux下再執行一次已確保能支援多平臺。        今兒在win下跑完一程式,然後放到linux下跑的時候,我用指令:sudo ./build.sh但是卻沒有任何反應。於是我換

python 讀取和寫入CSV格式檔案

This Python 3 tutorial covers how to read CSV data in from a file and then use it in Python. For this, we use the csv module. CSV literal

javac命令列編譯多個java檔案

export CLASSPATH=/usr/lib/jvm/java-6-sun/lib/commons-codec.jar:/usr/lib/jvm/java-6-sun/lib/commons-httpclient-3.1.jar:/usr/lib/jvm/java-6-sun/lib/commons-l

檢查開啟的檔案是不是ELF格式檔案,提取“特別”的節中的資訊

//檢查開啟的檔案是不是ELF格式的檔案 //檢驗ELF頭 //獲得節頭表的地址 //遍歷節頭表,依次檢視一個節的屬性,從節頭字串表中找到其名稱,如果名稱和“特別”的section名匹配,則找到此節的地址 //提取“特別”的節中的資訊 //顯示上面提取的資訊 #includ

g++編譯連結c語言檔案“undefined reference ” 的處理

用QT寫一介面程式,其中用到另一同事寫的一個小功能,他是用c語言寫的,於是把他的程式碼標頭檔案和原始檔都copy過來了,加入工程中,結果連結的時候就總報錯 undefined reference 某個函式。再三確認了makefile檔案和原始碼,表示沒問題,後來想到或許是g+

解決戶自生成meta導入kylin後問題Can not deserialize instance of java.lang.String[] out of VALUE_STRING token

pri ner hbase cau ebean 要求 eno pre property 報錯棧: 2017-06-22 20:48:07,101 ERROR [http-bio-7070-exec-5] cube.CubeManager:947 : Error dur

linux centos環境下,perl使用DBD::Oracle遇到Can't locate DBDOracle.pm in @INC 的解決辦法

acp right tps 名稱 ica 補充 str htm 遠程數據庫 前言 接手前輩的項目,沒有接觸、安裝、使用過perl和DBD::Oracle,也沒有相關的文檔記錄,茫茫然不知所措~~。一開始發現這個問題,就想著迅速解決,就直接在google上搜報錯信息,搜索的

Yum編譯安裝Error Downloading Packages

packages 命令 ont pan 檢查 nload bsp 執行 緩存 1:執行yum clean all 清除緩存目錄下的軟件包及舊的headers; 2:接著執行 yum list重新列出所有已經安裝和可以安裝的軟件包; 3:重新執行上述命令,發現yum編譯成功;

編譯安裝php5.6.30

linux php [root@wuhan_id01_u4_19.116 Software]# cat /etc/redhat-release CentOS release 6.8 (Final)...編譯報錯:make: *** [sapi/cli/php] Error 1分析在編譯安裝php時出現

centos7.2編譯安裝mysql5.7.21解決

initial mem ext ava gin onf 改密 依賴 document 編譯安裝mysql 安裝環境安裝包[root@ecs-adfa ~]# ls /root/tools/app.tar.gz mysql-5.7.21 mysql-5.7.21.tar.

c# 如果一個對象的值為null,那麽它調擴展方法時為甚麽不

tro img 數據類型 一個 emp void person () rem 如果一個對象的值為null,那麽它調用擴展方法時會報錯嗎? Person p = null ; p.ExtendMethod(); 上述代碼出現的情況不會報錯,剛開始遇到這種情況時很納悶,就去

針對Linux系統主機,進入修復模式,解決開機問題

ebo 掛載 報錯 講解 修復 exit mount 需要 oot 這裏講解的是,當Linux系統的主機開不了機的情況下,可以進入修復模式進行相應的修改 1.讓主機重啟,進入開機時的內核選擇界面,按e進入編輯界面 2.找到linux16那一行,將光標移動到最前面,按下End

NDK編譯JNI檔案implicit declaration of function 'RCCread' is invalid in C99 [-Wimplicit-function-declar

    關於JNI報錯 I:/AndroidProject/APP4/ledtest/jni/com_topeet_ledtest_ad1256.c:32:14:警告:函式'RCCread'的隱式宣告在C99中無效[-Wimplicit-function-dec

編譯glib-2.6.1

報錯資訊: You must have either have gettext support in your C library, or use the GNU gettext library. (http://www.gnu.org/software/gettext/ge

Maven 編譯打包的時候,:程式包org.junit不存在

問題定位: 問題出在java test 檔案中   出現的問題: java.junit.的版本問題,  預設的版本為3.8.1,修改為4.x,因為3.x使用的為程式設計的方式,4.x為註解的形式   解決方案:將java.junit 版本

Linux使用tar解壓.tar.bz2檔案:(原因)tar: Child returned status 2 tar: Error is not recoverable: exiting now

tar -jxvf xxxx.tar.bz2 如下報錯: tar (child): bzip2:無法 exec: 沒有那個檔案或目錄 tar (child): Error is not recoverable: exiting now tar: Child returned stat

Linux下mysql進行group by ,order by查詢

select userId,count(movieId) from ratings group by userId order by userId 報錯:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause