C语言和C++语言编程环境

Clion

  • 安装Visual Studio社区版,官网: https://visualstudio.microsoft.com/zh-hans/vs/, 选择安装c++桌面开发组件。安装目录: C:\MicrosoftVisualStudio\2022\Community
  • 安装Clion:https://www.jetbrains.com/clion/,新建项目或选择文件夹后,file,settings,build,toochains,添加 Visual Studio
    • Toolset: C:\MicrosoftVisualStudio\2022\Community,amd64,Platform 留空
    • CMake,debugger用默认

字符编码

  • 文件,设置,编辑器,文件编码,设置: 全局编码、项目编码、属性文件默认编码为 UTF-8
  • 源文件编码:UTF-8

CLion + MSVC 下的字符编码问题

参考: https://www.cnblogs.com/Chary/p/13608011.html

类似报错: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

原因: CLion 默认使用 UTF-8 编码,MSVC 继承了 MS 家族的一贯传统,除非明确指定否则要么 UTF-8 with BOM 要么当前代码页,参考: https://docs.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=msvc-170

处理方式: 修改 CMakeList.txt,在 add_executable 之前添加:

add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

运行

  • 设置:在外部控制台中运行,但这样会自动关闭cmd窗口,需要修改设置
  • 设置
    • 可执行文件: C:\Windows\System32\cmd.exe
    • 工作目录:项目的debug目录
    • 程序实参: /c chcp 65001 & cls & c_program.exe & echo: & pause
      • /c 是执行完dir命令后关闭命令窗口。
      • c_program.exe 为工作目录下的可执行文件名
      • chcp 65001:命令行使用 utf-8编码
      • cls:清屏
      • pause:按任意键继续
      • & 表示顺序执行命令,不论相邻的命令是否执行成功
      • echo: 输出空行

使用clang替换msvc

参考: https://www.jetbrains.com/help/clion/quick-tutorial-on-configuring-clion-on-windows.html#clang-cl,从 https://github.com/llvm/llvm-project/releases 下载LLVM,安装到 C:\LLVM

Clion 的工具链 VS环境下,C和C++编译器设置为 C:\LLVM\bin\clang-cl.exe.

使用clang时,不需要修改 CMakeList.txt 处理utf-8.

DevC++

1.安装 DevC++

  • 版本5.11 https://sourceforge.net/projects/orwelldevcpp/files/latest/download
  • 安装选项
    • Installer Language: English
    • 安装位置不要选默认位置,可以选择类似 D:\Dev-Cpp, 否则会导致 AStyle 格式化功能失效. 功能失效后只能用管理员权限运行 DevC++才能使用 AStyle 功能
    • Select your language:简体中文
  • 更换 TDM-GCC到最新64位版本
    • 下载最新版本: https://jmeubank.github.io/tdm-gcc/download/, 如 tdm64-gcc-10.3.0-2.exe
    • 清空文件夹 D:\Dev-Cpp\MinGW64, 安装64位, 安装下载的版本到文件夹 `D:\Dev-Cpp\MinGW64\
    • 工具, 编译器选项,点两个加号的按钮 寻找并自动配置编译器,确定
    • 重启 DevC++, 需要设置bin二进制目录路径: 工具,编译选项,目录,二进制: D:\Dev-Cpp\MinGW64\bin

2.调试

  • 编译器选择 Debug, 而不是 Release
  • 需要设置bin二进制目录路径: 工具,编译选项,目录,二进制: D:\Dev-Cpp\MinGW64\bin
  • F5

VisualStudio下的C语言环境配置

这里假设 VS版本为2019社区版.

1.安装

下载安装: https://docs.microsoft.com/zh-cn/visualstudio/, 安装时选择 "使用C++的桌面开发", 勾选英文语言包.

  • 选择创建新项目
  • 登录: 可以用github登录
  • 选择空项目,单击下一步
  • 填写项目名称(生成的文件夹名称和工程名都是这个),我这里填入CProject,保存位置选择为d:\CProject,勾选解决方案和项目放在同一目录中,便于调试。此时应该在工程建立ok后,生成 D:\CProject\CProject 文件夹
  • 在左侧的解决方案目录下,选中源文件,右键单击,选择添加->新建项. 如果左侧没有解决资源管理器,或者不小心关掉了,单击视图->项目资源管理器就可以调出来
    • 选择C++文件(不管是写c还是c++)
    • 底下名称的后缀是.cpp,我们写c代码时需要修改为.c
  • 选中C++文件,名称修改为hello.c,点击添加, 编写源代码
  • 按Ctrl+F5直接编译运行, 生成的exe并不是 hello.exe, 而是 D:\CProject\CProject\Debug\CProject.exe

2.设置

  • 使用scanf函数,可以这样设置: 右击项目——属性——C/C++——预处理器——预处理器定义中增加_CRT_SECURE_NO_WARNINGS,然后点确定,退出。
  • 自动换行: 工具,选项,文本编辑器,所有语言,常规,自动换行
  • 设置为64位, 否则有些第三方库有问题: 项目属性,配置属性,C/C++,语言,平台,x64
  • c语言标准:项目属性,配置属性,C/C++,语言,C语言标准,c17

备注:

3.快捷键

  • 代码格式化 CTRL + K + D
  • 注释: CTRL + K + C
  • 取消注释: CTRL + K + U
  • 删除光标所在的整行: CTRL + L, 实际是剪切了该行

4.万能头文件 <bits\stdc++.h>

最新gcc版本参考: https://gcc.gnu.org/onlinedocs/

比如11.1对应的文件 https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libstdc++/api/files.html,stdc++.h 文件的路径: Files,File List,stdc++.h, 对应源文件: https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libstdc++/api/a00824_source.html

  • 找到如下文件夹 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include
  • 创建文件夹 bits,并在该文件夹下创建文件 stdc++.h
  • 将上述gcc文件的内容复制到文件 stdc++.h
  • 引用方式 #include <bits/stdc++.h>

万能头文件会增加编译工作量

4. utf-8 多语言支持

  • 1.永久性修改page code 到 65001:
    • 修改系统cmd: 修改注册表的 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 的 CodePage然后选择十进制, 设置为 65001, 默认值为936.
    • 修改 visualstudio 调试控制台: HKEY_CURRENT_USER\Console\C:_Program Files (x86)_Microsoft Visual Studio_2019_Community_Common7_IDE_CommonExtensions_Platform_Debugger_VsDebugConsole.exe的 CodePage然后选择十进制, 设置为 65001, 默认值为936.
  • 2.参考: 这里
    • Open the project Property Pages dialog box. For more information, see Set C++ compiler and build properties in Visual Studio.
    • Select the Configuration Properties > C/C++ > Command Line property page.
    • In Additional Options, add the /utf-8 option to specify your preferred encoding.
    • Choose OK to save your changes.
  • 3.安装扩展:Force UTF-8 (no BOM)

不要做如下操作, 会导致部分软件无法启动运行或代码界面为乱码. windows,设置,时间和语言,语言,管理语言设置,更改系统区域设置,选中提供全球语言设置, 重启系统

windows环境下: notepad++

参考: 【Notepad++】用 Notepad++ 编译 C/C++

  • 安装 MinGW, 为了使用gcc. bin目录加到path
  • 安裝 NppExec插件,安裝后到“插件” -> NppExec -> execute, 輸入如下文本,保存為 cplusplusScript:

传统命令行:

NPP_SAVE
cmd /k & pushd "$(CURRENT_DIRECTORY)" && g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" && "$(NAME_PART)".exe & ECHO. & PAUSE & EXIT
NPP_CONSOLE 0

在notepad++ 之外运行cmd:

```txt
NPP_SAVE
NPP_RUN cmd /k & pushd "$(CURRENT_DIRECTORY)" && g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" && "$(NAME_PART)".exe & ECHO. & PAUSE & EXIT
NPP_CONSOLE 0

使用 powershell, && 需要替换为分号等, 如果加上NPP_CONSOLE 0 不会在 Notepad++上显示:

NPP_SAVE
NPP_RUN powershell  ; pushd "$(CURRENT_DIRECTORY)" ; g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" ; ".\$(NAME_PART)".exe ;    echo `n; Write-Host "Press any key to continue" -NoNewline;$null = [Console]::ReadKey('?'); EXIT;
NPP_CONSOLE 0
  • 设置快捷键, 打开插件->NppExec -> advanced option, 先点place to the Macros submenu, 然后点associated scripts, 找到你之前添加的"cplusplusScript"然后add。 关闭重启notepad++,然后到“设置” -> 管理快捷键 -> 到plugin commands里找到你创建的那个"cplusplusScript",给一个你喜欢的快捷键就行了。可以删除F11的全屏快捷键, 设置为编译运行C++的快捷键
  • 设置console字的颜色,到插件-> NppExec里有个advanced options, 可以修改不同字的颜色
  • 命令行说明
    • cmd /k:打开 cmd 控制台,运行完程序让其停留而不自动关闭。
    • pushd "$(CURRENT_DIRECTORY)":将工作路径更换到源文件所在的路径,例如'pushd E:\kkk'相当于 cmd 中先e:再cd kkk,这条命令在源代码要调用同目录文件而只写了相对路径时尤为重要。因为 Notepad++ 的默认工作路径是它自己的安装路径。
    • g++ -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)":调用环境变量中的编译器 g++.exe 来将源代码编译成同名 exe 文件并输出到相同路径。
    • "$(NAME_PART)".exe:运行源代码编译出的可执行文件。
    • ECHO. : 换行
    • PAUSE:暂停,提示“按任意键继续”,配合下一条命令实现“按任意键关闭”的效果,两者都没有的话程序运行完就会秒关。
    • EXIT:关闭 cmd 控制台,没有的话按任意键会退到 cmd 命令台,等待输入下一条命令。

命令参数:

$(CURRENT_DIRECTORY)代表文件所在目录的路径。
$(NAME_PART)表示该文件无后缀部分的文件名。
$(FULL_CURRENT_PATH)代表当前完整的文件路径。
双引号(半角):用于防止目录或文件名中含空格的情况。
“&&”和“&”:前者表示上一条命令正常执行完再执行下一条命令,非正常则不执行下一条;后者无顾虑。例如一分为六后的后两条子命令,表示不管源代码编译、运行是否成功,都会出现“按任意键继续”字样,并且按任意键后关闭 cmd 控制台。

格式化插件,最新版本1.2: https://sourceforge.net/projects/coolformat/files/Plugins/NPP/, 文档: https://github.com/akof1314/CoolFormat/wiki

下载后解压到Notepad++下的plugin文件夹即可,重启后可在插件查看.

解压后的目录结构:

- C:\Program Files\Notepad++\plugins\CoolFormatNppPlugin\CoolFormatNppPlugin.dll
- C:\Program Files\Notepad++\plugins\CoolFormatNppPlugin\CoolFormatLib\cf_windows_x64\CoolFormat.exe
- C:\Program Files\Notepad++\plugins\CoolFormatNppPlugin\CoolFormatLib\cf_windows_x64\CoolFormatLib.dll

自动完成:设置,首选项,自动完成

正文完
 
评论(没有评论)