这是一个使用 KMP 算法的 C 语言示例工程,适用于 Windows 环境,采用 CMake 生成构建工程,conan管理依赖项,VSCode编辑器开发,ninja构建工程.
CPROJECT_WIN
├───.cache
│ └───clangd
│ └───index
├───.vscode
├───build
│ └───Release
│ ├───CMakeFiles
│ │ ├───3.29.2
│ │ │ ├───CompilerIdC
│ │ │ │ └───tmp
│ │ │ └───CompilerIdCXX
│ │ │ └───tmp
│ │ ├───MyProject.dir
│ │ │ └───src
│ │ └───pkgRedirects
│ └───generators
├───include
├───out
└───src
pip install ninja
- 编译器:mingw64 gcc
要在 Windows 上使用 winget
安装 conan
和 cmake
以及 mingw64 gcc
,请按照以下步骤操作:
winget
是 Windows 包管理器。最新版本的 Windows 10 和 Windows 11 默认包含 winget
。如果没有,可以按照以下步骤安装:
- 打开 Windows Package Manager 的 GitHub 页面。
- 下载最新的
Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle
文件并安装。
打开命令提示符或 PowerShell,以管理员身份运行以下命令:
winget install JFrog.Conan
winget install Kitware.CMake
-
使用
winget
安装mingw64
:winget install -e --id MSYS2.MSYS2
-
安装
mingw64
后,打开MSYS2
终端并运行以下命令以更新包管理器:pacman -Syu
-
重新启动
MSYS2
终端,运行以下命令以安装mingw-w64
编译器和其他必要工具:pacman -Su pacman -S mingw-w64-x86_64-toolchain
确保将 mingw64
的 bin
目录添加到你的系统 PATH
环境变量中。步骤如下:
- 右键点击“此电脑”或“计算机”,选择“属性”。
- 点击“高级系统设置”。
- 在“系统属性”窗口中,点击“环境变量”。
- 在“系统变量”部分,找到并选中“Path”,然后点击“编辑”。
- 点击“新建”,然后添加
C:\msys64\mingw64\bin
(假设你的MSYS2
安装在C:\msys64
目录下)。
在命令提示符或 PowerShell 中运行以下命令以验证安装是否成功:
conan --version
cmake --version
gcc --version
通过上述步骤,你应该能够成功安装和配置 conan
、cmake
和 mingw64 gcc
,并能够在 Windows 上使用它们进行开发。
首先,将C project.code-profile导入到VSCode中,这样VSCode就会自动加载项目配置。
按下ctrl+shift+p,输入clangd,选择clangd:Download Language Server,下载完成后重启vscode。
打开终端,输入以下命令:(注意,在CMakeLists.txt目录下)
.\build_win.bat
看到如下输出,说明编译成功:
============Running MyProject.exe=============
next:-1 0 1 2 3 4 5 6 7
pos = -1
Press any key to continue . . .
首先,确保您已经安装了 Conan、CMake 和 Ninja。然后运行以下命令来安装项目依赖项:
conan install . --build=missing --profile=conan_profile_x64
运行 build_win.bat 脚本来配置和构建项目:
.\build_win.bat
构建完成后,您可以在 out 目录下找到生成的可执行文件 MyProject.exe。运行它:
cd out
.\MyProject.exe
- main.c:主程序文件,包含 KMP 算法的实现。
- include/kmp.h:KMP 算法的头文件。
- src/kmp.c:KMP 算法的实现文件。
- .clangd: LSP 服务器配置文件。
- .vscode: Visual Studio Code 配置文件。
- CMakeLists.txt:CMake 构建脚本。
- conanfile.txt:Conan 依赖项配置文件。
- build_win.bat:构建项目的脚本。
- conan_profile_x64:Conan 依赖项配置文件。
- README.md:项目说明文件。
- C project.code-workspace:VSCode 工作区配置文件。