当前位置: 首页 > news >正文

linux 配置cpp环境 测试

安装 g++、gcc、make 等完整工具链
sudo apt update
sudo apt install build-essential -y
sudo apt-get install cmake -y
sudo apt install gdb -y

编译
g++ hello.cpp -o hello
./hello

显示所有警告
g++ -Wall -Wextra hello.cpp -o hello

包含调试信息(用于gdb调试)
g++ -g hello.cpp -o hello

O1 优化
g++ -O1 hello.cpp -o hello

O2 优化(常用)
g++ -O2 hello.cpp -o hello

O3 最大优化
g++ -O3 hello.cpp -o hello

编译多个文件
g++ main.cpp functions.cpp -o myprogram
./myprogram

使用cmake

CMakeLists.txt 文件

#CMakeLists.txt# 设置:版本cmake_minimum_required(VERSION3.20)# 定义:项目名称project(first_cmake)# 变成执行程序 # 参数:项目名字、源码名字、add_executable(first_cmake first_cmake.cpp)

first_cmake.cpp 文件

#include<iostream>usingnamespacestd;intmain(){cout<<"Hello, World!"<<endl;return0;}

run.sh 文件

# 使用下面步骤代替第一步,原因是有些cmake版本不支持(-S -B)参数mkdirbuildcdbuild cmake..cd../# 下面一样cmake --build build ./build/first_cmake

若使用vscode
配置如下
使用方式:
快速运行:Ctrl+Shift+B
调试:F5

launch.json

{"version":"0.2.0","configurations":[{"name":"调试程序","type":"cppdbg","request":"launch","program":"${workspaceFolder}/build/first_cmake","args":[],"stopAtEntry":false,"cwd":"${workspaceFolder}","environment":[],"externalConsole":false,"MIMode":"gdb","setupCommands":[{"description":"为 gdb 启用整齐打印","text":"-enable-pretty-printing","ignoreFailures":true}],"preLaunchTask":"编译"}]}

tasks.json

{"version":"2.0.0","tasks":[{"label":"编译","type":"shell","command":"cd${workspaceFolder}&& mkdir -p build && cd build && cmake .. && make","group":"build"},{"label":"编译并运行","type":"shell","command":"cd${workspaceFolder}&& mkdir -p build && cd build && cmake .. && make && echo '=== 运行程序 ===' && ./first_cmake","group":{"kind":"build","isDefault":true}}]}
http://www.cnnetsun.cn/news/58300.html

相关文章:

  • 21、数据库与邮件服务配置指南
  • 90亿参数挑战720亿!GLM-4.1V-Thinking改写多模态推理规则
  • 15、深入探究Bash中的流程控制
  • 16、深入探索Shell脚本中的条件判断与循环结构
  • Wiki.js主题选择全攻略:从免费到付费的完整决策指南
  • 如何获取Unity完整功能的替代方案:跨平台解决方案指南
  • 终极压缩解决方案:3大核心技术让你的文件管理效率翻倍
  • 3B参数革命:IBM Granite-4.0-H-Micro如何重塑企业AI部署格局
  • WeKnora系统深度故障诊断:从架构原理到优化实践
  • Android组件化测试覆盖率实战:从架构到部署的完整解决方案
  • QMQTT终极指南:5分钟掌握Qt框架下的MQTT客户端开发
  • Realtek RTL8125 2.5GbE网卡驱动:从新手到专家的完整解决方案
  • WeKnora深度故障排查与性能优化实战指南
  • DeepFloyd IF三阶段调参指南:从参数混乱到精准掌控的艺术
  • Flutter实现Google登录的完整方案与终极指南
  • 4、深入探索文本处理与过滤:Linux 脚本实用指南
  • 7、深入探索Shell脚本编程技巧
  • 12、自动化重复任务与函数使用指南
  • 14、脚本高级功能与Linux系统启动及环境定制
  • 解决AI应用落地难题:Kimi-K2-Base万亿参数模型的技术突围之路
  • libsignal认证加密算法选择终极指南:从困惑到明智决策
  • 1.4B激活参数挑战7B性能:Ling-mini-2.0重新定义大模型效率边界
  • Termius中文版终极指南:告别英文SSH客户端的困扰
  • 数字笔迹革命:Joplin如何让触控笔成为你的第二大脑
  • 开源数学形式化新突破:StepFun-Formalizer-7B实现自然语言到Lean 4精准转换
  • 郊狼游戏控制器终极配置指南:快速上手完整教程
  • 6GB显存也能玩转AI绘画:FLUX.1-dev FP8量化技术实战手册
  • QMQTT终极指南:快速掌握Qt框架下的MQTT客户端开发
  • 73、Sendmail配置中的Define宏及参数详解
  • VGGT多视图匹配实战:注意力机制深度解析与性能优化指南