一. 前情
平时用的 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. 配置编译器
change:
选中“mingw32-gcc-g++-bin”的“mark for installation”,选择右上角“Installation”的“Apply Changes”即可。另外几项我没安装的时候也没什么问题,后来出了点别的问题,求保险才装的。总共装了不到 400MB。
相关推荐:《Notepad++使用图文教程》
2. 编辑环境变量
控制面板\所有控制面板项\系统,高级系统设置→环境变量,在“Administrator 的用户变量”栏找 PATH 变量,无则新建,有则编辑,变量名为“PATH”,变量值在原有的基础上增加一条“C:\MinGW\bin;”,该值与每个人把 MinGW 安装的位置有关,因人而异。“;”的意义在于当 PATH 的值有多项时,用它把这些项分开。
3. 两种方法检查前两步是否成功
进入 cmd 控制台,输入gcc -v或g++ -v查看已加入到环境变量中的编译器版本。显示黄框中的内容属于正常,说明前两步成功。
创建一个简单的 C++ 源代码文件,要保证代码正确能运行。例如 Hello.cpp:
//Hello.cpp #include<iostream> using namespace std; int main() { cout<<"Hello world, 世界你好!"<<endl; return 0; }
在 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 调出“运行”。复制后面说到的命令,运行即可,建议保存,名称随意。
也可以在工具栏中找“运行(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。
以上是一文了解如何用Notepad++编译C/C++的详细内容。更多信息请关注PHP中文网其他相关文章!

在使用C++进行编程时,经常会遇到未声明的标识符这个问题。这种情况通常发生在使用了未定义的变量、函数或类时,导致编译器无法识别这些标识符,进而产生编译错误。本文将介绍导致未声明的标识符问题的常见原因以及如何解决这个问题。常见原因未声明的标识符问题通常由以下几种原因导致:变量、函数或类未被正确声明:在使用变量、函数或类之前,应该先声明它们。如果变量未被声明或函

notepad++官网地址是https://notepad-plus-plus.org/。提供了许多强大的功能和工具,使其成为许多程序员和开发人员的首选工具。

Java是一种非常流行的编程语言,广泛应用于开发各种类型的软件。在Java开发中,编译和反编译技术是非常重要的环节。编译技术用于将Java代码转换成可执行文件,而反编译技术则允许人们将可执行文件重新转换回Java代码。本文将介绍Java中的编译和反编译技术。一、编译技术编译是将高级语言(如Java)代码转换为机器语言的过程。在Java

近年来,Go语言已经成为了越来越多开发者的选择。但是,相比其他编程语言而言,Go语言的编译速度却不够快。很多开发者在编译Go程序时都会遇到这样的问题:为什么我的Go程序需要更长时间来编译?本文将会从几个方面探讨这个问题。Go语言的编译器架构Go语言的编译器架构采用的是三阶段设计,分别是前端、中间层和后端。前端负责将源代码翻译成Go语言的中间代码,中间层则将中

原因:1、Linux发型版本众多,但是每个版本采用的软件或者内核版本都不一样,而二进制包所依赖的环境不一定能够正常运行,所以大部分软件直接提供源码进行编译安装。2、方便定制,满足不同的需求。3、方便运维、开发人员维护;源码是可以打包二进制的,但是对于这个软件的打包都会有一份代价不小的额外工作,包括维护,所以如果是源码的话,软件产商会直接维护。

5月25日消息,中国东方航空在业绩说明会上披露了关于C919客机的最新进展。据公司表示,与中国商飞签署的C919采购协议已于2021年3月正式生效,其中首架C919飞机已在2022年底交付。预计不久之后,该飞机将正式投入实际运营。东方航空将以上海为主要基地进行C919的商业运营,并计划在2022年和2023年引进总共5架C919客机。公司表示,未来的引进计划将根据实际运营情况和航线网络规划来确定。据小编了解,C919是中国具有完全自主知识产权的全球新一代单通道干线客机,符合国际通行的适航标准。该

C++编译错误:函数参数列表太长,应该怎么解决?在使用C++编写程序时,有时候会遇到这样的编译错误:函数参数列表太长。对于C++初学者来说,这可能是一个很头疼的问题。接下来,我们将介绍这个问题的原因和解决方法。首先,让我们来看一下C++函数参数的基本规定。在C++中,函数参数必须在函数名和左括号之间声明。当你传递函数参数时,告诉函数要做什么。这些参数可以是任

go语言能编译。Go语言是编译型的静态语言,是一门需要编译才能运行的编程语言。对Go语言程序进行编译的命令有两种:1、“go build”命令,可以将Go语言程序代码编译成二进制的可执行文件,但该二进制文件需要手动运行;2、“go run”命令,会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。