[問題] 編譯之後在其他電腦上執行

看板C_and_CPP作者 (喜德)時間9年前 (2014/10/24 14:43), 編輯推噓2(2033)
留言35則, 6人參與, 最新討論串1/1
小弟我使用的軟體是CodeBlocks 我想請問一下 當我寫完程式進行編譯之後 產生的那個exe檔可以直接讓別台電腦執行嗎(這邊所說的別台電腦沒有裝C++的編譯器) 我的想法是編譯的工作應該在我的電腦上就做完了 所以別台電腦應該是不需要編譯器也可以執行我這個檔案 所以應該是可行的 但是我上網查了一些資料之後看到有些人說不能執行 一定要裝有編譯器的電腦才可以 因為我手邊沒有多餘的電腦可以做測試所以不是很確定行不行 不曉得我這樣的觀念有沒有錯 希望大家幫忙解答一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.106 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414133010.A.00D.html

10/24 14:56, , 1F
當然可以,不然你以為你平常下載的軟體是怎麼跑的?
10/24 14:56, 1F

10/24 14:58, , 2F
那VC++編譯出來的檔案需要裝FrameWork是因為會用到裡面
10/24 14:58, 2F

10/24 14:59, , 3F
的東西嗎
10/24 14:59, 3F

10/24 15:00, , 4F
不過最基本你要先瞭解 ISA、binary file format、
10/24 15:00, 4F

10/24 15:01, , 5F
shared library、OS (system call、path blablabla)等
10/24 15:01, 5F

10/24 15:01, , 6F
才會知道為什麼有的時候可以跑有的時候不能跑
10/24 15:01, 6F

10/24 15:04, , 7F
你說的有時候可以有時候不行是指VC++嗎
10/24 15:04, 7F

10/24 15:05, , 8F
我剛學到物件導向而已離你說的那些應該還很遠吧
10/24 15:05, 8F

10/24 15:11, , 9F
我覺得這些東西跟語言學到哪裡無關,如果有興趣事先看
10/24 15:11, 9F

10/24 15:12, , 10F
看無所謂。如果你要 short answer,那何不編個 hello
10/24 15:12, 10F

10/24 15:13, , 11F
world 跑跑看?(PS.我講的東西不是單指 VC)
10/24 15:13, 11F

10/24 15:18, , 12F
有想過 但是我手邊沒有電腦讓我測試
10/24 15:18, 12F

10/24 15:18, , 13F
嗯嗯謝囉 我會找時間去看看那些東西
10/24 15:18, 13F

10/24 15:32, , 14F
計中樓下或是系上電腦教室都有很多電腦可以試 XDD
10/24 15:32, 14F

10/24 15:36, , 15F
推薦你這個 VirtualBox 很好用
10/24 15:36, 15F

10/24 15:43, , 16F
C大 我不確定可不可以直接去用 好像要申請
10/24 15:43, 16F

10/24 15:44, , 17F
VirtualBox我有用過 但是它有些設定我不太會調
10/24 15:44, 17F

10/24 15:56, , 18F
不用啊,計中你走進去就可以用。系上如果是資工沒有課
10/24 15:56, 18F

10/24 15:56, , 19F
刷學生證就可以進去~
10/24 15:56, 19F

10/24 15:56, , 20F
virtualbox 基本上什麼都不用調就跑的起來了吧XD
10/24 15:56, 20F

10/24 15:57, , 21F
不然可以去下載微軟官方的 windows 虛擬檔來跑
10/24 15:57, 21F

10/24 16:41, , 22F
先去查,什麼叫做"可執行檔"
10/24 16:41, 22F

10/24 16:54, , 23F
可以,但是在編譯的時候,要勾選一些選項,這樣編譯
10/24 16:54, 23F

10/24 16:55, , 24F
出來的執行檔會比較肥大,因為他會把一些元件也包進
10/24 16:55, 24F

10/24 16:55, , 25F
10/24 16:55, 25F

10/24 16:57, , 26F
要編譯成release版本
10/24 16:57, 26F

10/24 23:46, , 27F
嗯...樓上這一段對一半, 主要還是看程式有沒有一些外部相依
10/24 23:46, 27F

10/24 23:47, , 28F
如果沒有使用到一些別人寫好的 framework 之類的東西的話
10/24 23:47, 28F

10/24 23:47, , 29F
基本上就把執行檔複製過去就可以了
10/24 23:47, 29F

10/24 23:48, , 30F
若有的話有兩個做法, 其一是樓上講的把那些東西編進執行檔
10/24 23:48, 30F

10/24 23:48, , 31F
另一種則是使用那些 framework 編出來的 DLL
10/24 23:48, 31F

10/24 23:49, , 32F
不過這樣執行檔就要跟那些 DLL 一起複製過去了
10/24 23:49, 32F

10/24 23:49, , 33F
編 release 在這裡並沒有顯著的減少程式碼大小的作用
10/24 23:49, 33F

10/24 23:50, , 34F
如果用了包了一堆東西的 framework 一樣執行檔會變大
10/24 23:50, 34F

10/25 01:11, , 35F
感謝L大的詳細解說 我大概有一些概念了
10/25 01:11, 35F
文章代碼(AID): #1KIVKI0D (C_and_CPP)