VisualStudio+CMake开发C++全攻略

以下是一份详细的 Visual Studio + CMake 开发 C++ 入门指南,涵盖环境搭建、项目创建、调试技巧和实战案例。


1. 环境搭建

安装 Visual Studio
  1. 下载 Visual Studio 2022 Community 版
  2. 安装时勾选 “使用 C++ 的桌面开发”“C++ CMake 工具”
    • 确保包含 MSVC 编译器Windows SDKCMake 集成组件
验证安装

打开命令行,输入以下命令:

cmake --version # 确认 CMake 版本 cl /? # 确认 MSVC 编译器 


2. 创建 CMake 项目

项目结构

创建一个基础项目目录:

my_project/ ├── CMakeLists.txt # CMake 配置文件 ├── src/ │ └── main.cpp # 主程序 └── include/ └── utils.h # 头文件 
编写 CMakeLists.txt
cmake_minimum_required(VERSION 3.10) # 最低 CMake 版本 project(MyProject) # 项目名称 # 设置 C++ 标准 set(CMAKE_CXX_STANDARD 17) # 添加可执行文件 add_executable(${PROJECT_NAME} src/main.cpp src/utils.cpp ) # 包含头文件目录 target_include_directories(${PROJECT_NAME} PUBLIC include) 


3. 在 Visual Studio 中打开项目

  1. 打开 Visual Studio,选择 “打开本地文件夹”
  2. 导航到项目目录(包含 CMakeLists.txt 的文件夹)。
  3. Visual Studio 会自动识别为 CMake 项目并生成构建缓存。

4. 编写示例代码

include/utils.h
#pragma once int add(int a, int b); 
src/utils.cpp
#include "utils.h" int add(int a, int b) { return a + b; } 

src/main.cpp
#include <iostream> #include "utils.h" int main() { std::cout << "5 + 3 = " << add(5, 3) << std::endl; return 0; } 


5. 构建与运行

  1. 构建:在 VS 顶部菜单选择 “生成” → “生成全部”(或快捷键 Ctrl+Shift+B)。
  2. 运行:按 F5 启动调试,或 Ctrl+F5 直接运行。

输出结果:

5 + 3 = 8 

6. 调试技巧

  • 断点调试:在代码行号左侧单击设置断点,按 F5 启动调试。
  • 变量监视:右键变量 → “添加监视” 或使用 “监视”窗口
  • CMake 缓存重置:若配置更改无效,删除 build/ 目录重新生成。

7. 项目实战:数学计算库

扩展项目,添加一个数学计算模块:

include/math_utils.h
#pragma once double square(double x); 

src/math_utils.cpp
#include "math_utils.h" double square(double x) { return x * x; } 

更新 CMakeLists.txt
# 添加新源文件 add_executable(${PROJECT_NAME} src/main.cpp src/utils.cpp src/math_utils.cpp ) 

main.cpp 中使用
#include "math_utils.h" int main() { std::cout << "Square of 4: " << square(4.0) << std::endl; return 0; } 


8. 常见问题解决

  1. 找不到头文件:检查 target_include_directories 路径是否正确。
  2. 链接错误:确保所有源文件已添加到 add_executable
  3. CMake 生成失败:检查控制台输出的错误信息,常见于路径或语法错误。

总结

通过 Visual Studio 集成 CMake,可以高效管理 C++ 项目的构建流程。重点掌握:

  1. 项目结构:合理组织头文件和源文件。
  2. CMake 配置:使用 add_executabletarget_include_directories
  3. 调试技巧:断点、监视窗口和缓存重置。

实战中逐步扩展功能模块,可快速提升开发效率。

Read more

重新创建python3.10环境,与先创建python3.8环境然后conda install python=3.10,二者不同

重新创建python3.10环境,与先创建python3.8环境然后conda install python=3.10,二者不同 今天安装mem0ai: pip install mem0ai 安装前没有查看要求的python版本,装了3.8,然后运行如下指令报错: from mem0 import MemoryClient 然后发现mem0ai要求python版本3.10以上,于是通过conda install python=3.10升级,出现了新的报错。 删除当前环境后重新创建python3.10环境,就可以正常运行了。 问了AI原来二者是有区别的: “在已有 Conda 环境中通过 conda install python=3.10 升级 Python 版本,会导致依赖包(尤其是含 C 扩展的包)与新 Python

By Ne0inhk
Python-flask的企业合同管理系统-Pycharm django

Python-flask的企业合同管理系统-Pycharm django

目录 * Python Flask 企业合同管理系统技术要点 * Django 企业合同管理系统技术对比 * Pycharm 开发优化技巧 * 技术选型建议 * 开发技术路线 * 源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! Python Flask 企业合同管理系统技术要点 Flask 框架核心模块 * 使用 Flask-SQLAlchemy 进行数据库模型设计,定义合同、客户、用户等数据表。 * 通过 Flask-WTF 实现表单验证,确保合同录入数据的合法性。 * 采用 Flask-Login 管理用户认证和权限控制,区分管理员与普通用户角色。 关键功能实现 * 合同增删改查(CRUD)功能,结合分页插件(Flask-Paginate)优化数据展示。 * 文件上传模块,支持 PDF/Word 格式合同附件存储,使用 Flask-Uploads 扩展。 * 合同状态跟踪(如待签署、

By Ne0inhk
[Python 基础课程]猜数字游戏

[Python 基础课程]猜数字游戏

使用 Python 实现一个猜数字游戏,先随机生成一个 1 到 100 之间的一个随机整数,让用户猜测这个数是什么,每次都提示用户猜大了还是猜小了,如果用户猜对了,提示用户猜对了,用了多少次,并且之前每一次的猜测数字都是什么。 前置知识 从控制台中读取用户输入 guess =int(input("请输入你的猜测:")) 生成一个 1 到 100 之间的随机整数: import random secret_number = random.randint(1,100) 答案 import random # 生成 1 到 100 之间的随机整数# random.randint(a, b) 会生成一个 a 和

By Ne0inhk

Python 爬虫实战:从零到一抓取微信公众号文章内容

大会官网:https://ais.cn/u/ZZvqiq 大会时间:2026年1月30日 前言 随着社交媒体内容价值的不断凸显,微信公众号作为内容创作和传播的核心载体,其文章数据的抓取与分析已成为数据分析、内容研究领域的重要需求。不同于普通网页爬虫,微信公众号内容因平台的反爬机制、数据加密及访问权限限制,抓取难度更高。本文将从技术原理、实战开发、异常处理等维度,系统讲解如何使用 Python 实现微信公众号文章内容的精准抓取,帮助开发者突破平台限制,高效获取目标数据。 摘要 本文聚焦微信公众号文章爬虫的全流程实现,核心涵盖微信公众号文章接口分析、Cookie 与 Token 鉴权处理、动态页面数据解析三大核心技术点,通过requests库实现 HTTP 请求、BeautifulSoup解析 HTML 结构,结合实战案例完成文章标题、正文、发布时间、阅读量等核心字段的抓取。实战目标链接:微信公众号文章示例页(可替换为实际待爬取公众号文章链接),最终实现可复用、高稳定性的爬虫脚本,并针对反爬机制给出优化方案。 一、

By Ne0inhk