Rumah alat pembangunan papan nota 一文了解如何用Notepad++编译C/C++

一文了解如何用Notepad++编译C/C++

Aug 14, 2019 pm 02:15 PM
c c++ notepad++ menyusun

一文了解如何用Notepad++编译C/C++

一. 前情

平时用的 IDE(集成开发环境)是 Dev-Cpp,因为只是学习阶段,代码还上不了千行,个人认为不需要 VS 那种高大全,VC6.0 又有些地方(不只是审美)不顺眼。

但最近又发现当把 C++ 代码文件复制到 Ubuntu 18.04 编译运行时,汉字部分总会乱码,因为encoding(字符编码)的问题,Ubuntu只认UTF-8,Windows只认ANSI,Ubtuntu虽然我能让VIM显示ANSI,却做不到让终端显示,而Windows 上的 Dev-Cpp 不能设置encoding为 UTF-8,所以想改用 Notepad++ 这个 Editor(编辑器)增加 Compiler (编译器)的功能。

环境:win7。Notepad++。Dev-Cpp。

二. 步骤

1. 配置编译器

官网下载安装MinGW

change:

1565762406(1).png

选中“mingw32-gcc-g++-bin”的“mark for installation”,选择右上角“Installation”的“Apply Changes”即可。另外几项我没安装的时候也没什么问题,后来出了点别的问题,求保险才装的。总共装了不到 400MB。

相关推荐:《Notepad++使用图文教程

2. 编辑环境变量

1565762425(1).png

控制面板\所有控制面板项\系统,高级系统设置→环境变量,在“Administrator 的用户变量”栏找 PATH 变量,无则新建,有则编辑,变量名为“PATH”,变量值在原有的基础上增加一条“C:\MinGW\bin;”,该值与每个人把 MinGW 安装的位置有关,因人而异。“;”的意义在于当 PATH 的值有多项时,用它把这些项分开。

3. 两种方法检查前两步是否成功

1565762437(1).png

进入 cmd 控制台,输入gcc -v或g++ -v查看已加入到环境变量中的编译器版本。显示黄框中的内容属于正常,说明前两步成功。

创建一个简单的 C++ 源代码文件,要保证代码正确能运行。例如 Hello.cpp:

//Hello.cpp
#include<iostream>  
using namespace std;
int main()
{
    cout<<"Hello world, 世界你好!"<<endl;
    return 0;  
}
Salin selepas log masuk

在 cmd 控制台 cd 到该源代码的目录,然后执行g++ Hello.cpp -o Hello.exe,然后执行Hello.exe /k命令,能正常运行也能说明前两大步没问题。

前一条命令是用 g++ 编译器编译这个源代码并输出 exe 文件到这个目录,后一条是运行 exe 文件(/k 参数使其运行后停留在程序界面,与之相对的 /c 会使其关闭。即 keep 与 close 的对比)。前面两条命令其实可以用“&&”合为一条,即g++ Hello.cpp -o && Hello.exe Hello.exe /k。

到这里已经成功一大半了,因为如你所见,已经可以在 cmd 控制台编译并运行源代码了,而赋予 Notepad++ 这个能力,只是让 Notepad++ 一步“对当前打开的源文件用 cmd 执行编译、运行命令”而已。

4. Notepad++ 增加运行命令

打开 Notepad++,按 F5 调出“运行”。复制后面说到的命令,运行即可,建议保存,名称随意。

1565762452(1).png

也可以在工具栏中找“运行(R)”

参考了多个关于 Notepad++ 运行命令和 cmd 命令的资料,经修改后我的命令是cmd /k pushd "$(CURRENT_DIRECTORY)" && g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" && "$(NAME_PART)".exe & PAUSE & EXIT(无分行,是一整条命令),要理解这条命令的话可以将其一分为六,即:

(1)cmd /k:打开 cmd 控制台,运行完程序让其停留而不自动关闭。

(2)pushd "$(CURRENT_DIRECTORY)":将工作路径更换到源文件所在的路径,例如'pushd E:\kkk'相当于 cmd 中先e:再cd kkk,这条命令在源代码要调用同目录文件而只写了相对路径时尤为重要。因为 Notepad++ 的默认工作路径是它自己的安装路径。

(3)g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)":调用环境变量中的编译器 g++.exe 来将源代码编译成同名 exe 文件并输出到相同路径。

(4)"$(NAME_PART)".exe:运行源代码编译出的可执行文件。

(5)PAUSE:暂停,提示“按任意键继续”,配合下一条命令实现“按任意键关闭”的效果,两者都没有的话程序运行完就会秒关。

(6)EXIT:关闭 cmd 控制台,没有的话按任意键会退到 cmd 命令台,等待输入下一条命令。

·$(CURRENT_DIRECTORY)代表文件所在目录的路径。

·$(NAME_PART)表示该文件无后缀部分的文件名。

·$(FULL_CURRENT_PATH)代表当前完整的文件路径。

·双引号(半角):用于防止目录或文件名中含空格的情况。

·“&&”和“&”:前者表示上一条命令正常执行完再执行下一条命令,非正常则不执行下一条;后者无顾虑。例如一分为六后的后两条子命令,表示不管源代码编译、运行是否成功,都会出现“按任意键继续”字样,并且按任意键后关闭 cmd 控制台。

三. 后续

折腾了接近半天后,发现和 Ubuntu 一样,只是让编辑器能显示 UTF-8,却做不到控制台显示。也就是 Notepad++ 能显示 UTF-8/ANSI,但运行后 cmd 控制台还是只认 ANSI。

Atas ialah kandungan terperinci 一文了解如何用Notepad++编译C/C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++? Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++? Jun 06, 2024 pm 04:16 PM

Langkah-langkah untuk melaksanakan corak strategi dalam C++ adalah seperti berikut: tentukan antara muka strategi dan isytiharkan kaedah yang perlu dilaksanakan. Buat kelas strategi khusus, laksanakan antara muka masing-masing dan sediakan algoritma yang berbeza. Gunakan kelas konteks untuk memegang rujukan kepada kelas strategi konkrit dan melaksanakan operasi melaluinya.

Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Apr 01, 2025 pm 03:06 PM

Punca dan penyelesaian untuk kesilapan Apabila menggunakan PECL untuk memasang sambungan dalam persekitaran Docker Apabila menggunakan persekitaran Docker, kami sering menemui beberapa sakit kepala ...

Apakah peranan char dalam c strings Apakah peranan char dalam c strings Apr 03, 2025 pm 03:15 PM

Dalam C, jenis char digunakan dalam rentetan: 1. Simpan satu watak; 2. Gunakan array untuk mewakili rentetan dan berakhir dengan terminator null; 3. Beroperasi melalui fungsi operasi rentetan; 4. Baca atau output rentetan dari papan kekunci.

Bagaimana untuk mengendalikan pengecualian C++ silang silang? Bagaimana untuk mengendalikan pengecualian C++ silang silang? Jun 06, 2024 am 10:44 AM

Dalam C++ berbilang benang, pengendalian pengecualian dilaksanakan melalui mekanisme std::promise dan std::future: gunakan objek promise untuk merekodkan pengecualian dalam utas yang membuang pengecualian. Gunakan objek masa hadapan untuk menyemak pengecualian dalam urutan yang menerima pengecualian. Kes praktikal menunjukkan cara menggunakan janji dan niaga hadapan untuk menangkap dan mengendalikan pengecualian dalam urutan yang berbeza.

Empat cara untuk melaksanakan multithreading dalam bahasa c Empat cara untuk melaksanakan multithreading dalam bahasa c Apr 03, 2025 pm 03:00 PM

Multithreading dalam bahasa dapat meningkatkan kecekapan program. Terdapat empat cara utama untuk melaksanakan multithreading dalam bahasa C: Buat proses bebas: Buat pelbagai proses berjalan secara bebas, setiap proses mempunyai ruang ingatan sendiri. Pseudo-Multithreading: Buat pelbagai aliran pelaksanaan dalam proses yang berkongsi ruang memori yang sama dan laksanakan secara bergantian. Perpustakaan multi-threaded: Gunakan perpustakaan berbilang threaded seperti PTHREADS untuk membuat dan mengurus benang, menyediakan fungsi operasi benang yang kaya. Coroutine: Pelaksanaan pelbagai threaded ringan yang membahagikan tugas menjadi subtask kecil dan melaksanakannya pada gilirannya.

Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Apr 03, 2025 pm 10:33 PM

Pengiraan C35 pada dasarnya adalah matematik gabungan, yang mewakili bilangan kombinasi yang dipilih dari 3 dari 5 elemen. Formula pengiraan ialah C53 = 5! / (3! * 2!), Yang boleh dikira secara langsung oleh gelung untuk meningkatkan kecekapan dan mengelakkan limpahan. Di samping itu, memahami sifat kombinasi dan menguasai kaedah pengiraan yang cekap adalah penting untuk menyelesaikan banyak masalah dalam bidang statistik kebarangkalian, kriptografi, reka bentuk algoritma, dll.

Penggunaan Releaseemaphore dalam C Penggunaan Releaseemaphore dalam C Apr 04, 2025 am 07:54 AM

Fungsi Release_semaphore dalam C digunakan untuk melepaskan semaphore yang diperoleh supaya benang atau proses lain dapat mengakses sumber yang dikongsi. Ia meningkatkan kiraan semaphore dengan 1, yang membolehkan benang menyekat untuk meneruskan pelaksanaan.

Bagaimana cara menggunakan nomenclature ular dalam bahasa c? Bagaimana cara menggunakan nomenclature ular dalam bahasa c? Apr 03, 2025 pm 01:03 PM

Dalam bahasa C, nomenclature ular adalah konvensyen gaya pengekodan, yang menggunakan garis bawah untuk menyambungkan beberapa perkataan untuk membentuk nama pembolehubah atau nama fungsi untuk meningkatkan kebolehbacaan. Walaupun ia tidak akan menjejaskan kompilasi dan operasi, penamaan panjang, isu sokongan IDE, dan bagasi sejarah perlu dipertimbangkan.

See all articles