【Notepad++】用 Notepad++ 编译 C/C++

一. 前情

  想找Notepad++运行命令的可以直接跳到最后。
  平时用的 IDE(集成开发环境)是 Dev-Cpp,因为只是学习阶段,代码还上不了千行,个人认为不需要 VS 那种高大全,VC6.0 又有些地方(不只是审美)不顺眼。
  但最近又发现当把 C++ 代码文件复制到 Ubuntu 18.04 编译运行时,汉字部分总会乱码,因为encoding(字符编码)的问题,Ubuntu的终端只认UTF-8,Windows只认ANSI,Ubuntu虽然我能让VIM显示ANSI,却做不到让终端显示,而Windows 上的 Dev-Cpp 不能设置encoding为 UTF-8,所以想改用 Notepad++ 这个 Editor(编辑器)增加 Compiler (编译器)的功能,平时方便改encoding。

二. 步骤

1. 配置编译器

  1. 官网下载安装MinGW
  2. change:

    MinGW打开后的界面


    选中“mingw32-gcc-g++-bin”的“mark for installation”,选择右上角“Installation”的“Apply Changes”即可。

2. 编辑环境变量

 

步骤预览


环境变量,在“Administrator 的用户变量”栏找 PATH 变量并编辑,变量值在原有的基础上增加一条“C:\MinGW\bin;”,该值与每个人把 MinGW 安装的位置有关,因人而异。“;”的意义在于当 PATH 的值有多项时,用它把这些项分开。

 

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

步骤预览

  • 进入 cmd 控制台,输入gcc -vg++ -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。蓝瘦。
参考资料:
(下表是参考的4篇文章,0/1代表我个人的满意情况,逗号后面是具体情况)

参考资料编译器配置解释编译运行完代码调用与源代码同一目录的文件含cmd命令行解释
a0,MinGW0,留在工作目录1,chdir0
b0,TDM-GCC或Dev C++1,pause,exit01
c1,MinGW1,pause,exit01
d0,MinGW0,秒关窗口1,pushd1

举一反三,参照之前的命令,也能写出运行Python的运行命令,比g++编译器要简单:cmd /k pushd "$(CURRENT_DIRECTORY)"&&python "$(NAME_PART)".py & PAUSE & EXIT

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值