為什麼這篇linux執行exe鄉民發文收入到精華區:因為在linux執行exe這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者pluseus (回憶真美麗)看板C_and_CPP標題[問題] 請問為什麼Win和Linux執...
問題(Question):
抱歉問一個蠢問題
請問為什麼在Windows OS下compile過後的執行檔(.exe)
拿到「同一台」機器下的Linux OS,為什麼不能執行?
而要在Linux下source code重新compile才能使用
我會有這個問題
是因為我的理解是,source code經過compile過後
就變成for某種cpu的機器碼了(例如x86機器碼)
而Windows OS和Linux OS,因為是同一台機器,假如也都是使用相同的x86機器碼
但是為什麼執行檔在不同OS不能互通呢?
謝謝! ^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.113.225
※ 編輯: pluseus 來自: 140.109.113.225 (07/03 12:17)
M大打的看不懂 @@"
不過h大打的大概能想像 系統服務像是程式在執行期配置記憶體是透過OS來完成
另外我會去找d大推薦的那本書來看
anyway,謝謝幾位的解答!
※ 編輯: pluseus 來自: 140.109.113.225 (07/03 13:00)
Yeap, I know it's a question quite fundamental and stupid.
I have said it in my post first line.
但是你不該很本位地把所有上來問問題的人都想成是資訊相關背景出身的人
我問了一個歷史很簡單的問題,所以我必須要是一個歷史系的學生?
還是我要是一個還沒上大學的高中生?
不是每個寫程式的人都詳細瞭解編譯器編譯時做了甚麼,不是嗎?
我覺得你都沒有看我的問題敘述
我有打為什麼我會有這樣的問題
我的思路很簡單,因為編譯器要把source code翻譯成cpu看得懂的機器語言
而同一台機器所需要機器語言是相同的
雖然是在不同OS編譯,但最後的所生成的執行檔的目標是相同的
所以我有這個問題,為什麼不同OS編譯下的執行檔不能互通
當然我的想法過於簡化
中間省略掉很多
而中間省略掉的部分
就是我不知道的部分、希望要問的地方
如果您願意提供一點方向
就算是告訴我哪裡有答案、要我自己去查
我都會很感謝
12:34,donby先生推薦了「程式設計師的自我修養」這本書
我13:40就衝到台北重慶南路天瓏去買了
http://img834.imageshack.us/img834/6606/l0un.jpg
![](http://img834.imageshack.us/img834/6606/l0un.jpg)
不論如何,謝謝你下面的解答
罵?請問您覺得我的問題有那裡任何不妥的地方,需要被「罵」嗎?
→ purpose:找到答案了,一堆人問過的問題 07/03 17:14
謝謝您推薦的書,I am reading the book.
書本P4開宗就講了那書本要探討的問題之一:「不同的編譯器(Microsoft VC、GCC)和不同
平台(x86、SPARC、MIPC、ARM),以及不同的作業系統(Windows、Linux、UNIX、
Solars),最終編譯出來的結果一樣嗎?為什麼?」
正好是我要的!非常謝謝!
謝謝您的一句話,讓我豁然開朗
→ maerdimer:那麼 why 不能問? 人家都說只是 curiosity 了 07/03 20:49
※ 編輯: pluseus 來自: 220.136.227.160 (07/03 21:47)
是的,所以我還是非常感謝的 :)
※ 編輯: pluseus 來自: 220.136.227.160 (07/03 21:50)