想必許多人開始接觸程式時,不外乎是從 C 語言、 C++ 、 Java 等的基礎語言開始學起。
接觸程式語言前最重要的部分就是編寫程式語言的 IDE (Integrated Development Environment ,整合開發環境 ),也就是寫下程式、編譯程式的地方。
寫程式如同寫書法,而 IDE 就如同毛筆,一隻好的毛筆能讓人有舒適的書寫體驗,而一個優良的 IDE 可以帶來簡易上手的 Coding 體驗。
......讓我們談談 Visual Studio 吧。
Microsoft Visual Studio(簡稱VS)是微軟公司的開發工具套件系列產品。
VS是一個基本完整的開發工具集,它包括了整個軟體生命周期中所需要的大部分工具,如UML工具、代碼管控工具、整合式開發環境(IDE)等等,所寫的目的碼適用於微軟支援的所有平台......
很好,就此打住。
不知道為什麼,許多學校在一開始教程式時都優先讓學生使用 Visual Studio 中的 Visual C++,甚至有學校是「指定」學生只能用 Visual C++。
最近還聽說過有人除了用 Visual C++ 之外都不知道該如何 Coding,最後導致剛得手的大好工作丟失的例子...
WTF?
先不論上面例子的真實性,我身邊倒是真的有不少除了 Visual Studio 外不知道有其他 IDE 能編寫程式的人在,讓上面的例子更加貼近了現實。
如果是剛開始學習程式,真的需要一整套可能用不到的專案套件軟體?
開始打這篇文章的前一天,剛好有人在問我 Visual C++ 2008 該去哪裡找,原因是學校指定要用...
唉,不知是從什麼時候開始,我們身旁的東西都被 Microsoft 綁得死死的,OS 也就算了,Office、Browser (
比較:
IDE 占用容量:
Notepad++ 與 MinGW 等雜項 (300 MB 以下)
< Visual C++ Express 2010 (近 1GB)
<< Visual Studio 2010、2013、2015 (7.x GB 以上)
占用效能:
Notepad++ < Visual C++ Express 2010 << Visual Studio 2010、2013、2015
程式編譯後占用大小:
Notepad++ (只有編譯 Source Code)
<< Visual C++ Express 2010 = Visual Studio 2010、2013、2015 (建立整個專案)
操作複雜程度:
Notepad++ < Visual C++ Express 2010 = Visual Studio 2010、2013、2015
Coding 友善程度:
Notepad++ = Visual Studio 2013、2015 > Visual C++ Express 2010 = Visual Studio 2010
(註: 占用效能部分可能會因使用硬體較佳電腦而無感,但使用小筆電或 Windows 平板的感受就相當明顯)
(註2:目前尚未比較 Notepad++ 與 Visual Studio 2015 在 Coding 時的感受,但相信與 2013 版相差不大,希望有人舉列修正)
(註3:Code::Blocks 與 Dev-C++ 也不錯,但比較後依舊偏好 Notepad++,大家可以嘗試看看)
以下正文,開始教大家如何使用 Notepad++ 當作簡易 IDE。
正文:
圖01. Notepad++ 官網 |
步驟 1. 到 Notepad++ 官網下載程式
https://notepad-plus-plus.org/
Notepad++ 不僅免費且開源,輕巧好用,更棒的是官方有釋出可攜帶式( Portable )版本,讓你可以解壓縮後放在隨身碟,方便到處奔波的人使用。
左方的 download 按下去吧!
(左上方有你我熟悉的旗幟,沒錯,Notepad++ 官網是有繁體中文的)
圖02. 下載 Notepad++ |
基本上,下載第一個安裝程式即可。
步驟 2. 安裝 Notepad++
圖3. 安裝 Notepad++ |
基本上不要理會選項,無腦按下一步即可。
圖4. Notepad++ |
*若打開後為英文,打開程式後可至 『Setting』 -> 『Preferences』 -> 『General』 -> 『Localization』 中更改語言
圖5. 更改語言 |
步驟 3. 下載 Plugin--NppExec
到 『外掛模組』 -> 『Plugin Manager』 -> 『Show Plugin Manager』,下滾找到 『NppExec』 後點選 『Install』
圖6. 安裝 NppExec |
安裝完成後,到『外掛模組』 -> 『NppExec』檢查是否安裝完成。
圖7. 安裝 NppExec 完成 |
步驟 4. 配置系統環境
此步驟會依不同的程式語言而有所差異,在這裡分開講解。
(兩個可以一起做)
Java:
步驟 4.1下載與安裝 JDK(Java SE Development Kit)
基本上每個學過 Java 的人,第一堂 Java 課就是學習如何配置 Java 環境,若你已建構好此環境的大可直接略過。
首先,到這裡 下載我們所需要的 JDK
圖8. 下載 JDK |
接著,點選 『Accept License Agreement』,版本任意選擇,基本上下載新的最好。
再根據自己系統的架構選擇下載類型,由於我的電腦是 Windows 64 Bit,固然選擇 Windows x64。
圖9. 同意與選擇下載 JDK |
安裝時無腦下一步即可。
圖10. 安裝 JDK |
步驟 4.2 在系統中配置環境變數
打開『檔案管理器』 -> 空白處按下滑鼠右鍵 -> 『內容』
圖11. 呼叫進階系統設定 |
接著,『進階系統設定』 -> 『環境變數(N)...』
圖12. 呼叫環境變數設定 |
找到『系統變數』中的『Path』,點選『編輯(I)...』
圖13. 編輯系統環境變數 |
按下『新增』,接著填入你剛才安裝 JDK 的位置中的 bin 資料夾
預設位置為『C:\Program Files\Java\你安裝的 JDK 版本\bin』
圖14. 更改系統環境變數 |
接著,請重新開機。
恭喜,Java 環境配置完成。
若想確認是否完成環境設置,可使用 cmd 輸入 javac,若跳出指令提示而非『找不到指令』,代表環境配置已完成。
(豆知識:系統變數就是你在系統中呼叫指令的位置)
C 語言 / C++:
步驟 4.3下載與安裝 MinGW
此部分需下載 MinGW 協助我們安裝 GCC Compiler 與 G++ Compiler,點選這裡。
點擊右上角的『Download Installer』後,等待幾秒連結到 sourceforge.net 自動下載。
圖15. 下載 MinGW |
點開檔案後,大膽按下 『Install』,再按下 『Continue』安裝。
圖16. 安裝 MinGW |
安裝完成後會自動執行程式,點擊左邊的『Basic Setup』
將『mingw32-base』與『mingw32-gcc-g++』接按下滑鼠右鍵 -> 『Mark for Installation』
(兩個都要!)
按下左上角『Installation』 -> 『Apply Changes』
跳出確認視窗後,按下『Apply』
圖18. 應用所選 |
安裝完成後,按下『Close』離開,即可關閉程式。
圖19. 關閉 MinGW |
步驟 4.4 在系統中配置環境變數
同 步驟4.3 但最後在 Path 的路徑改為 『C:\MinGW\bin』(你安裝 MinGW 的 bin 資料夾)即可。
圖20. 添加位置至環境變數 |
接著,建議重新開機。
恭喜,C語言/C++ 的環境配置也完成了。
若想確認是否完成環境設置,可使用 cmd 輸入 gcc 或 g++,若跳出指令提示而非『找不到指令』,代表環境配置已完成。
(豆知識:系統變數就是你在系統中呼叫指令的位置)
步驟 5. 建立程式碼編譯腳本
照圖.19 按下 『外掛模組』->『NppExec』->『Execute...』
圖22. 開啟『Execute...』 |
這裡放入我們執行編譯時所下的指令,會依程式語言的不同而有所差別,請務必注意。
Java:
C:
C++:
隨後,按下一旁的『Save...』儲存腳本,記得幫腳本一個可以簡單辨認的名稱。
另外,可儲存多個腳本,如圖所示。
基本上,按下『OK』時就能執行腳本了,但這不太方便使用,且若有多個腳本要執行時要一一切換,相當麻煩。
因此,下一步驟讓我們自訂執行腳本的快捷鍵。
註:
此編譯腳本為編譯後自動執行腳本,若想分為編譯與執行兩個腳本,可將指令分開存成腳本。
以 C++ 的做舉例。
編譯:
執行:
C 與 Java 的方法類似,請自行領會。
(提醒一點,javac 是編譯 java 程式碼的指令,相信不難懂)
Java:
cd $(CURRENT_DIRECTORY) javac $(FILE_NAME) java $(NAME_PART)
圖24. Java 用指令 |
C:
cd $(CURRENT_DIRECTORY) gcc -o "$(FILE_NAME).exe" "$(FILE_NAME)" $(NAME_PART).exe
圖25. C 用指令(腳本已更正,不建議照圖打) |
C++:
cd $(CURRENT_DIRECTORY) g++ -o "$(FILE_NAME).exe" "$(FILE_NAME)" $(FILE_NAME).exe
圖26. C++ 用指令(腳本已更正,不建議照圖打) |
隨後,按下一旁的『Save...』儲存腳本,記得幫腳本一個可以簡單辨認的名稱。
圖27. 命名腳本 |
另外,可儲存多個腳本,如圖所示。
圖28. 多組腳本 |
基本上,按下『OK』時就能執行腳本了,但這不太方便使用,且若有多個腳本要執行時要一一切換,相當麻煩。
因此,下一步驟讓我們自訂執行腳本的快捷鍵。
註:
此編譯腳本為編譯後自動執行腳本,若想分為編譯與執行兩個腳本,可將指令分開存成腳本。
以 C++ 的做舉例。
編譯:
cd $(CURRENT_DIRECTORY) g++ -o "$(FILE_NAME).exe" "$(FILE_NAME)"
執行:
cd $(CURRENT_DIRECTORY) "$(FILE_NAME).exe"
(提醒一點,javac 是編譯 java 程式碼的指令,相信不難懂)
步驟 6. 自訂編譯快捷鍵
到『外掛模組』->『NppExec』,按下『Advanced Options...』
圖29. Advanced Options |
在左下角有『Associated script:』,選擇一個你想新增成快捷鍵的腳本。
新增完成後按下『Add/Modify』。
圖30. 新增快速鍵輔助 |
按下『OK』後會出現提示,重新啟動 Notepad++ 即可。
圖31. 重啟提示 |
若有多個腳本,可以重複以上操作後再重開 Notepad++。
重新開啟 Notepad++ 後,點擊『自訂』->『快速鍵管理』
圖32. 快速鍵管理 |
按下『Plugin commends』後下滾,可以找到剛才新增的腳本。
圖33. Plugin commends |
點兩下後就能設定快捷鍵,這裡可依自己喜好而定,但要注意是否有與其他快捷鍵重複,否則設定了也沒用。
在這裡分享我自己的設定:
圖34. 設定分享 |
完成後按下『Close』離開。
步驟 7. 測試成品
現在任意輸入你的程式碼,測試看看這個 Notepad++ 的強大性!
輸入程式碼之前,先設定程式語言。
圖35. 設定程式語言 |
讓我們試看看吧!
圖36. 測試 |
經過以上步驟,你的簡便 IDE 已經完成了,剩下就是摸索這個 Notepad++ ,好好探索變換主題、Coding Style 修改、暢玩各式 Plugins ...
好好享受吧!
圖37. 個人之前在玩某塊開發版時,由於受不了該公司所制的 IDE 時常死當的問題,因此決定用 Notepad++ Coding,原本的 IDE 單純當 Compiler 用,讚嘆 Notepad++。 |
步驟 8. 如何製作可攜版?
把 Notepad++ 免安裝版依照上面步驟即可(不用作步驟4. ),就可以放在隨身碟帶著走。
前提是,使用的電腦有架好環境設置 。
(要求寫 Java 卻沒架 Java 環境,這也未免太...)
若想連 Compiler 也可攜,這可能需要讀者自行研究,若個人有進一步發現,會在這裡分享給各位。
個人上 Java 課時,總會帶這套自己做好的 Notepad++,由於比起用 Window 內建的記事本 Coding 好上太多,導致隨身碟常常要借給一堆人,或許這就是打這篇文章的動機。
(註:老師是不希望修課同學被某些 IDE 綁死,導致更換其他環境打不起 Java,才讓同學使用記事本來寫 Java)
(說真的,用記事本來 Coding 還真是 #@$!#%#@$)
(我寧可用 vim !)
圖38. Linux 系統的 Vim 文字編輯器 |
2015/12/5 臺灣 傍晚
yyyy/mm/dd
2016/02/28 補充:
前幾天把 Unity 5.1.2 更新到 Unity 5.3.x 時,沒仔細看每個步驟就傻傻按了 NEXT,重開機後電腦就自己安裝 Visual Studio 2015,1x GB 的空間就去了,WTF
雖然說 VS 有不少強大的實用功能,但原本內建的 monodevelop 在大部分的時候也夠用了不是嗎...
2016/10/28 補充:
感謝 Willy Hsu 大大的留言,部分腳本已更正。
另外,剛剛發現有幾篇留言被 blogger 判定為垃圾留言,十分抱歉。
2016/12/01
經友人測試後發現編譯腳本不能用,現已修正。
2016/12/06
首圖掛了,改用其他方式放圖片上去
在步驟 4.4中,配置好 C/C++ 環境後,從「請重新開機」改為「建議重新開機」。
(幫自己的另一台電腦測試後,發現不重新開機也可直接使用,請各位自行測試。)
測試C檔案,出現以下錯誤:
回覆刪除gcc -o testForC.exe testForC.c
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
testForC.exe
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
檢查環境變數部分是否設置正確,並確認能否執行。
刪除可以在 cmd 中輸入 gcc 檢查,若有設置成功會提示
『gcc: fatal error:no input files』。
另外,c/c++ 部分之環境變數設置完畢後,須重新啟動系統才能正常運作;java 則設置完畢後即可立刻使用,無須重啟。
Hi請問一下,我測試C的時候也是出現下列問題,有確認過cmd內是可以執行gcc的,能否幫忙看看問題可能出在哪呢?謝謝
刪除Current directory: D:\C_codeing
gcc -o test1.exe test1.c
Process started >>>
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot find -lpthread
collect2.exe: error: ld returned 1 exit status
<<< Process finished. (Exit code 1)
test1.exe
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
你好,我在 cmd 中輸入 gcc 檢查,有成功顯示
回覆刪除『gcc: fatal error:no input files』
但我還是出現錯誤:
#include
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
main()
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
{
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
printf("hello,world\n");
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
}
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
請問是甚麼問題呢,謝謝
測試C++ 出現這樣:
回覆刪除NPP_EXEC: "C++"
CD: C:\Users\Tony\Documents\Programming
Current directory: C:\Users\Tony\Documents\Programming
gcc -o new 1.exe new 1.c
Process started >>>
gcc: error: 1.exe: No such file or directory
gcc: error: new: No such file or directory
gcc: error: 1.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
<<< Process finished. (Exit code 1)
new 1.exe
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
已確認cmd gcc
gcc: fatal error: no input files
compilation terminated.
作者已經移除這則留言。
刪除"new 1"之間有空格。
刪除腳本裡
g++ -o $(NAME_PART).exe $(NAME_PART).cpp
改成
g++ "$(FILE_NAME)" -o $(NAME_PART).exe
感謝樓上回覆,看來我要修正一下腳本的內容了
刪除不好意思,我改成樓上的腳本問題還是存在,還有其他可能的原因嗎?
刪除編譯:
回覆刪除// Fig. 2.3:fig02_03.cpp
// Printing a line of text with multiple statements.
#include //allows program to output data to the screen
// function main begins program execution
int main()
{
std::cout <<"welcome";
std::cout <<"to c++!/n"
}// end function main
結果:
CD: D:\編譯器
Current directory: D:\編譯器
g++ -o 測試.exe 測試.cpp
Process started >>>
測試.cpp: In function 'int main()':
測試.cpp:10:1: error: expected ';' before '}' token
}// end function main
^
<<< Process finished. (Exit code 1)
測試.exe
CreateProcess() failed with error code 216:
此版本的 %1 與您執行的 Windows 版本不相容。請檢查電腦的系統資訊,然後連絡軟體發行者。
是發生什麼??>< 我下載錯版本??電腦是64位元,照這邊下載的。
已確認cmd gcc
gcc: fatal error: no input files
compilation terminated.
已確認cmd gcc
g++: fatal error: no input files
compilation terminated.
請問一下 執行c語言時正常 只要執行C++ 就會跑出 不支援的16位元應用程式 視窗 然後無法編譯 這我該怎麼解決 我是使用win10 64bit surface pro 4
回覆刪除不太明白你的問題,方便截圖「不支援的16位元應用程式」的視窗嗎?
刪除https://drive.google.com/open?id=0B0uvPWs2_5OiZlFCaU5QQ29yalk
刪除重作步驟4.3試試,我猜有可能在該步驟出了問題
刪除請問最後有解決嗎 我也出現這樣的問題
刪除請問最後有解決嗎 我也出現這樣的問題
刪除Hello, 感謝您的分享, 已經能夠用notepad++ compile C!
回覆刪除我想請問一下notepad++可否debug呢?
我稍微google一下似乎不行?
假如是這樣的話我想請問您是怎麼debug? 還是回到visualstudio嗎?
Thank you
若您是指程式普通 Debug (像是常見的少「;」等等語法錯誤)的部分,個人是直接看 Compiler 的錯誤訊息,進而大略推敲錯誤位置(相信大部分的人也是如此);邏輯 debug 的部分要看每個人思考的角度,不太好解釋...
刪除至於逐行執行、變數數值、指標位置的部分可能要找 Visual studio 了
個人建議把它作為最簡單的編寫環境,如基礎練習、演算法測試等等,做專案最方便還是用 IDE 為宜:)
測試c++出現這樣▼
回覆刪除CD: A:\user\meeting
Current directory: A:\user\meeting
g++ "1060102.cpp" -o 1060102.exe
Process started >>>
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: reopening 1060102.exe: Permission denied
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: final link failed: Permission denied
collect2.exe: error: ld returned 1 exit status
<<< Process finished. (Exit code 1)
1060102.cpp.cpp
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
請問是什麼問題呢?
MinGW 重裝試試?
刪除我也有遇到這個問題
刪除後來我開Notepad++時,點右鍵選"以系統管理員身分執行" 就OK了
測試Java出現這樣>>
回覆刪除NPP_EXEC: "Java"
CD: C:\Users\Princ\Desktop
Current directory: C:\Users\Princ\Desktop
javac testJ.java
Process started >>>
testJ.java:1: error: class testForJava is public, should be declared in a file named testForJava.java
public class testForJava {
^
1 error
<<< Process finished. (Exit code 1)
java testJ
Process started >>>
錯誤: 找不到或無法載入主要類別 testJ
<<< Process finished. (Exit code 1)
================ READY ===============
主類別名稱和檔名不同,您檢查一下
刪除請問一下
回覆刪除在測試gcc後顯示
gcc:fatal error:no input files
compilation terminated.
回程式測試則是
CD: D:\_backup81\Desktop
Current directory: D:\_backup81\Desktop
gcc -o "new 1.exe" "new 1"
Process started >>>
new 1: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
<<< Process finished. (Exit code 1)
new 1.exe
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
是哪出了問題
看起來像是檔案名稱出了問題,您的檔案是不是沒有 .c 的副檔名呢?
刪除作者已經移除這則留言。
回覆刪除作者已經移除這則留言。
刪除您好,不好意思,請問一下。
回覆刪除我測試gcc後顯示
gcc:fatal error:no input files
compilation terminated.
我在腳本中打的內容是
cd $(CURRENT_DIRECTORY)
g++ "$(FILE_NAME)" -o $(NAME_PART).exe
$(NAME_PART).exe
然後執行後在console顯示的訊息是
CD: C:\Program Files (x86)\Notepad++
Current directory: C:\Program Files (x86)\Notepad++
g++ "change.log" -o change.exe
Process started >>>
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot open output file change.exe: Permission denied
collect2.exe: error: ld returned 1 exit status
<<< Process finished. (Exit code 1)
change.exe
CreateProcess() failed with error code 2:
系統找不到指定的檔案。
想請問所謂的Permission denied該怎麼處理?
您好,不好意思,請問一下...
回覆刪除跑完之後沒有列印出我打的字串,
也沒有顯示錯誤,
但就是看不到結果...@@
請問要怎麼處理?
NPP_EXEC: "C"
CD: C:\Users\judy\Desktop\C語言
Current directory: C:\Users\judy\Desktop\C語言
gcc "C2-1.c" -o C2-1.exe
Process started >>>
<<< Process finished. (Exit code 0)
#include
回覆刪除int main(){
int integer1,integer2;
printf("Please enter the first integer: ");
scanf("%d", &integer1);
printf("Please enter the second integer: ");
scanf("%d", &integer2);
return 0;
}
===========
CD: C:\Users\重夢\Desktop\vscode
Current directory: C:\Users\重夢\Desktop\vscode
gcc -o "Untitled-1.c.exe" "Untitled-1.c"
Process started >>>
<<< Process finished. (Exit code 0)
Untitled-1.exe
Process started >>>
1
2
Please enter the first integer: Please enter the second integer: <<< Process finished. (Exit code 0)
================ READY ================
為什麼他執行的順序沒有照我下的程式碼運行?
因為很討厭VS寫C++還要開專案,很煩!!!!!!!!!!
回覆刪除自己去弄套codeblocks來玩玩,覺得也不錯呢