2014-01-08 247 views
3
[[email protected] ASM]# ls 
EXEC* file.sh* this.asm 
[[email protected] ASM]# ./EXEC 
bash: ./EXEC: No such file or directory 
[[email protected] ASM]# 

我有我編寫了一個assemblyfile,它不認爲這是一個實際的文件。不是我用[TAB]自動填充填寫文件名。它檢測到它,但它說:「沒有這樣的文件或目錄」文件存在,但「沒有這樣的文件或目錄」

這裏是我使用的編譯什麼。 我有一個64位機和正在運行的32位彙編代碼:

nasm -f elf32 -o tmp.o this.asm 
ld -s -lc -L /usr/lib32/ -m elf_i386 -o EXEC tmp.o 

它顯示了ls和Tab鍵的文件,但是當我按下回車鍵,就顯示什麼。

更新: 好的。當我不要通過ASM文件調用C函數,我可以編譯和運行,沒有錯誤,使用此:

nasm -f elf32 -o tmp.o this.asm 
ld -s -m elf_i386 -o EXEC tmp.o 
+1

如果不是二進制我d說它可能有一個不好的she-bang線,但是用二進制表示我沒有想法。 – Alfe

+0

它,確實是一個二進制文件。我可以很好地執行shell腳本。我應該更新它,我可以執行它,如果我用不同的方式進行complile,但該程序不會允許我。 – Goodies

回答

2

看起來像一個動態鏈接程序的問題。試着用/usr/lib32執行它添加到動態鏈接路徑:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib32 ./EXEC 

如果不工作,你也許可以這樣做:

/usr/lib32/ld-linux.so.2 --library-path /usr/lib32 ./EXEC 
相關問題