Re: [問題] linux正常情況為何不能執行exe檔

看板CSSE (電腦科學及軟體工程)作者 (睡魔)時間17年前 (2007/04/02 18:30), 編輯推噓7(7013)
留言20則, 9人參與, 最新討論串2/5 (看更多)
※ 引述《final01 (牛頓運動定律)》之銘言: : 是compiler.libc.linker-editor .program loader : 哪一個階段使他不能執行呢? : 應該是LINKER就會有差別了吧? : WINDOWS的Libc應該跟LINUX一樣吧?或是有些許差別? : 這裡的LIBC應該就是GLIBC吧? : 這問題想很久了~謝謝指教 執行檔的格式根本不同. Windows用的執行檔是PE格式, Linux用的是ELF格式. 詳細的比較可以看這裡: http://www.acm.uiuc.edu/sigmil/RevEng/ch08.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.134.126.84 ※ 編輯: leicheong 來自: 202.134.126.84 (04/02 18:32)

04/02 18:40, , 1F
我知道是格式不同~想問是誰用成不同格式的
04/02 18:40, 1F

04/02 18:41, , 2F
照你這樣講是COMPILER摟?因為可下ELF格式參數
04/02 18:41, 2F

04/02 19:18, , 3F
有些原始碼會依存某些lib,而這些lib又因os而異
04/02 19:18, 3F

04/02 19:20, , 4F
所以光是source code就應寫成Windows版和Linux版甚或Mac版三種
04/02 19:20, 4F

04/02 19:21, , 5F
不過如果是無依存關係的程式,就不需要想這麼多了....
04/02 19:21, 5F

04/02 19:22, , 6F
我舉個例吧,如果寫個程式要使用到3D硬體加速的話,該怎麼辦
04/02 19:22, 6F

04/02 20:22, , 7F
OpenGL 好像可以跨平台, 用 GLUT 的 Lib ?
04/02 20:22, 7F

04/03 12:25, , 8F
windows和linux的syscall完全不一樣
04/03 12:25, 8F

04/03 15:18, , 9F
Lib倒不一定是主要原因, 可以像RAR一樣用link成static
04/03 15:18, 9F

04/03 15:20, , 10F
我想如果問這問題的話, 先假定這EXE只做變數連算而不
04/03 15:20, 10F

04/03 15:21, , 11F
輸出結果好了...
04/03 15:21, 11F

04/04 02:52, , 12F
其實WinXP中很多程式都不能在MS DOS 6.2當中執行.
04/04 02:52, 12F

04/04 02:53, , 13F
同一家的OS都這樣了, 何況是不同作者的OS.
04/04 02:53, 13F

04/04 02:55, , 14F
很多時候, 相同的樣子是會被告.
04/04 02:55, 14F

04/04 02:55, , 15F
不同的話, 也是該OS對那不同之處有自己的見解.
04/04 02:55, 15F

04/04 02:56, , 16F
不同的見解當然會帶來不同的實作結果.
04/04 02:56, 16F

04/06 22:28, , 17F
不同格式的執行檔loader看不懂
04/06 22:28, 17F

04/06 22:29, , 18F
道理好像不同格式檔案用不同程式開一樣
04/06 22:29, 18F

04/10 19:14, , 19F
Windows 那個不是叫COFF
04/10 19:14, 19F

05/19 06:16, , 20F
coff 是 obj的格式吧
05/19 06:16, 20F
文章代碼(AID): #164DioXq (CSSE)
文章代碼(AID): #164DioXq (CSSE)