Esirn's Blog. Welcome and Goodbye.

用Notepad++编译运行C++

2018-10-06
Esirn

阅读:


步骤

配置MinGW编译器

参照Win10用命令行编译运行C++配置完MinGW后,就已经成功一大半了,因为如你所见,已经可以在 cmd 控制台编译源代码并运行了,而赋予 Notepad++ 这个能力,只是让 Notepad++ 通过一条命令来“对当前打开的源代码文件用 cmd 执行编译、运行命令”而已。

Notepad++增加运行命令

打开 Notepad++,按 F5 调出“运行”。复制后面说到的命令,运行即可,建议保存,名称随意。 也可以在工具栏中找“运行(R)”

参考了多个关于 Notepad++ 运行命令和 cmd 命令的资料,经修改后我的命令是cmd /k pushd "$(CURRENT_DIRECTORY)" && g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" && "$(NAME_PART)".exe & PAUSE & EXIT(无分行,是一整条命令)。

命令详情

要理解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 控制台。

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

参考资料

下表是参考的4篇文章,0/1代表笔者个人的满意情况,逗号后面是具体情况。

参考资料 编译器配置解释 编译运行完 代码调用与源代码同一目录的文件 含cmd命令行解释
a 0,MinGW 0,留在工作目录 1,chdir 0
b 0,TDM-GCC或Dev C++ 1,pause,exit 0 1
c 1,MinGW 1,pause,exit 0 1
d 0,MinGW 0,秒关窗口 1,pushd 1

Comments

Content