[爆卦]Visual Studio 產生 執行檔是什麼?優點缺點精華區懶人包

為什麼這篇Visual Studio 產生 執行檔鄉民發文收入到精華區:因為在Visual Studio 產生 執行檔這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者tropical72 (藍影)看板C_and_CPP標題Re: [問題] CPP如何直接comp...


※ 引述《steve1012 (steve)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Visual studio 2010
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: not important
: 問題(Question):
: 學校規定繳交的作業是CPP檔案且必須可以compile
: 可是我在家裡嘗試發現若是把CPP檔案單獨拿出來是不能compile的 用Visual Studio開
: 不能按f5 要compile必須開sln檔案
: 請問要怎麼解決這個問題呢??
: 我知道這個問題可能有點笨 可是課本上沒寫..不知道要怎麼處理

james732:http://ppt.cc/xv4A 也可以學 cl.exe 怎麼用10/27 14:06

james 大這篇要好好看,是最基礎、實用的入門。
以下文章,說明, 於 Visual C++ IDE 下,不建專案,進行編譯、執行之方法,
原想一張一張截圖下來發 blog,不過太懶了,僅以文字敘述方式進行。
此處以 Visual C++ 2010 為例。

0. 建立 batch file

在 C:\ 底下建議 vc100.bat ,內容如下

@echo off
call "%VS100COMNTOOLS%vsvars32.bat"
CL.exe "%1" /Fe"%~dpn1.exe" /EHsc

REM 開始執行提示, 不想加刪下面這行
echo. &echo --------- start %~dpn1.exe ---------
"%~dpn1.exe"

REM 不想刪 obj 則刪去下面這行
del "%~dpn1.obj"

要像 code block 加計時功能的話參考連結 https://gist.github.com/1319333
只是簡單計時而已,同時最好將該 batch 設為唯讀。

1. 不需專案直接執行方法

1.1. 工具 -> 外部工具 -> 加入
1.2. [edit box] 標題: NoPorject
[edit box] 命令: C:\vc100.bat
[edit box] 引數: $(ItemDir)$(ItemFileName)$(ItemExt)
[edit box] 初始目錄: $(ItemDir)
1.3. [check box] ( cancel all )
× 使用輸出視窗
× 提示輸入引數
× 結束時關閉

至此,以後你用 Visual C++ 開啟 source code 時,只要按下
工具 -> NoPorject
便可自動執行該 batch file,程式也幫你順便執行。
但這樣還不夠,嫌每次都要按來按去,沒快捷鍵麻煩,繼續以下步驟。

2. 得知 外部工具 之編號

2.1 工具
2.2 裡面有一堆分隔線,注意力放到含有 NoEmpty 那一個 block
假設含有 NoEmpty 之顯示為

---------------
Dotfuxxx (1)
ILDxxx (2)
建立xxx (3)
錯誤查詢 (4)
...
NoEmpty (7)
外部工具 (8)
---------------

2.3 從上往下數,它處於第 7 個,於是 NoEmpty 編號是 7

3. 新增快捷鍵

3.1. 工具 -> 自訂
3.2. 工具列(分頁)->右下角->鍵盤(K)
3.3. [edit box] 文字游標停在 "按快速鍵" 之 editbox 上,
同時按下你想要執行 NoProject 之快捷鍵,此處假定按下 Ctrl + (Num 0)

3.3.1 若與現有快捷鍵相衝會有提示,要換的話,先把原本的刪除,再輸入。
3.3.2 快捷鍵不小心 over ride 現有快捷鍵,要改回可按 "重設"。
3.3.3 基本上 VS 快捷鍵都快用光了,自己加的話有幾個技巧,
(1) Ctrl + Shift + Fn
(2) Ctrl + 數字鍵 ( 常用這個搭 )

3.4. 同一畫面,在「顯示包含下列的命令」底下,直接 keyin
工具.外部命令7 , 完成後在「按快捷鍵」旁按下 「指定」,
再按下 確定退出。

3.5. 按下 工具,如果 NoProject 那欄顯示變成了
NoProject Ctrl + Num 0
就表示成功。

自此,每次用 Visual C++ 開啟 source code 時,只需按 Ctrl + 0
便可自動完成 compile、execute 動作。

4. 在工具列裡面加入 button

4.1. 工具 -> 自訂
4.2. 工具列(分頁)-> 新增 -> 輸入工具列名稱 (此處輸入 EdisonX)
4.3. 完成後切記,先按關閉。
4.4. 工具 -> 自訂 -> 工具列分頁,List Box 之 Focus 放在 EdisonX
4.5. 跳到 命令分頁
4.6. Radio Box 點「工具列」,選 EdisonX
4.7. 按下「加入命令(A)」
4.8. 左半 分類 選 「工具」,右半 命令 選 「外部命令7」 (剛剛的查詢),
完成後按確定,關閉退出。
4.9. 完成後在工具列上,應會多了一個 NoProject 之 Button,
按下此 Button 與按快捷鍵 Ctrl + Num 0 效果相同。

5. 延伸

上述方式有個缺點,一次只能執行一個檔案,但應已符合原 po 需求。
若需使用到 argc, argv 時,可在 1.3 時,將 提示輸入引數 勾選,
強度做得如何,又回歸到 batch file 如何寫,此處只予參考範例。

另 VC IDE 也可用來設定以 gcc、g++ 編譯單一檔與執行,
也可拿來做 批次檔 與 組語之開發環境, ( 要下載 wordlist 作 highlight 便是)
方式都如上述步驟,於此不再贅述。
但編寫其它程式語言、script,有沒有必要用 vs 這麼肥的軟體,留予討論。

--
No matter how gifted you are,
alone, can not change the world.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.78.41
※ 編輯: tropical72 來自: 180.177.78.41 (10/27 19:54)
Bencrie:怎麼不用 nmake ? 10/27 19:55
tropical72:一方面nmake沒很熟,但nmake就要再寫一個makefile,這不 10/27 20:05
tropical72:就不適合在ide底下直接用快捷鍵執行了嗎? 10/27 20:06
angleevil:我想問一下,vc100.bat是2010的bat嗎? 我執行call 10/27 21:33
angleevil:他跟我說沒這執行檔.~"~ 10/27 21:33
tropical72:vc100.bat 那是在step0自己寫的,放到 C:\ 底下。 10/27 21:34
PRAM:說實在的,只不過是交個學校作業,有必要用VC++嗎? 又沒要寫 10/27 21:42
PRAM:視窗程式,既然只要交一個 .cpp 檔給助教,就用 Dev-C++ 寫就 10/27 21:42
PRAM:好了啊。 10/27 21:42
VictorTom:推. 10/27 21:43
VictorTom:話說, 規定是交個.cpp並可以單獨被compile, 那其實用什 10/27 21:44
VictorTom:寫好像都沒差, 重點是像VC不要開到像precompile header 10/27 21:44
VictorTom:型式的project. 只要使用pure/empty console C/C++的 10/27 21:45
VictorTom:project, 並小心不要用到compiler特有的東西, 一般來說 10/27 21:46
VictorTom:拿到哪個可以獨立吃.cpp來compile的compiler應該都行吧? 10/27 21:46
tropical72:的確是像 V 大所說,原 po 老師/助教意思,應該是寫出 10/27 21:54
tropical72:來的檔案能通過 vc 編譯、執行即可 (先限定編譯器後續 10/27 21:55
tropical72:批改也方便) ,做完這篇文章好處是,不建立 project, 10/27 21:56
angleevil:不玩了,我的版本是英文.看得好累 10/27 21:56
tropical72:一次開啟n個含main之檔案,想看結果直接按 ctrl+0 即可 10/27 21:56
tropical72:不會出現 multi-main 問題。 10/27 21:56
tropical72:補一下,2008也可以做,差在步驟4不同而已。 10/27 21:58
james732:這種被引用的感覺真害羞...XDDD 10/27 22:01
angleevil:james732跟tropical72... 10/27 22:03
VictorTom:在一起.... XD 10/27 22:04
qoozxc789:老大我跟你同天生日欸 10/27 22:07
qoozxc789:阿靠 是jame732 10/27 22:07
james732:...?? 10/27 22:11
tropical72:補張圖看結果可能清楚一點 http://ppt.cc/5J8! 10/27 22:16
qoozxc789:沒啦XD 就同天生日裝熟一下而已 10/27 22:31
Wush978:我比較推nmake, 或是乾脆學cmake 10/27 22:49
steve1012:謝謝你!!! 10/27 23:51

你可能也想看看

搜尋相關網站