温馨提示×

Ubuntu C++项目如何创建

小樊
35
2026-08-17 08:06:12
栏目: 编程语言

在 Ubuntu 上创建一个 C++ 项目,常见做法有 命令行方式IDE 方式。下面从最基础到更规范的方式逐步说明,你可以按需求选择。


一、准备环境(必须)

1️⃣ 安装编译工具

sudo apt update
sudo apt install build-essential

检查是否安装成功:

g++ --version
make --version

二、最简单方式(单文件项目)

1️⃣ 创建项目目录

mkdir hello_cpp
cd hello_cpp

2️⃣ 创建 C++ 源文件

nano main.cpp

内容示例:

#include <iostream>

int main() {
    std::cout << "Hello Ubuntu C++!" << std::endl;
    return 0;
}

3️⃣ 编译并运行

g++ main.cpp -o hello
./hello

✅ 适合:学习语法、小测试


三、多文件 C++ 项目(推荐基础结构)

目录结构

project/
├── include/
│   └── utils.h
├── src/
│   ├── main.cpp
│   └── utils.cpp
├── build/

示例代码

include/utils.h

#ifndef UTILS_H
#define UTILS_H

void printHello();

#endif

src/utils.cpp

#include "utils.h"
#include <iostream>

void printHello() {
    std::cout << "Hello from utils!" << std::endl;
}

src/main.cpp

#include "utils.h"

int main() {
    printHello();
    return 0;
}

编译

g++ src/main.cpp src/utils.cpp -Iinclude -o build/app
./build/app

✅ 适合:中型项目、课程作业


四、使用 Makefile(工程化)

创建 Makefile

nano Makefile

内容:

CXX = g++
CXXFLAGS = -Iinclude
SRC = src/main.cpp src/utils.cpp
OBJ = $(SRC:.cpp=.o)
TARGET = build/app

all: $(TARGET)

$(TARGET): $(OBJ)
	$(CXX) $(OBJ) -o $(TARGET)

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

clean:
	rm -f src/*.o $(TARGET)

使用

make
./build/app
make clean

✅ 适合:真实项目、自动化构建


五、使用 CMake(最推荐 ✅)

1️⃣ 安装 CMake

sudo apt install cmake

2️⃣ 项目结构

project/
├── CMakeLists.txt
├── include/
│   └── utils.h
├── src/
│   ├── main.cpp
│   └── utils.cpp

3️⃣ CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(MyProject)

set(CMAKE_CXX_STANDARD 17)

include_directories(include)

add_executable(app
    src/main.cpp
    src/utils.cpp
)

4️⃣ 构建项目

mkdir build
cd build
cmake ..
make
./app

✅ 优点:

  • 跨平台
  • 工业级标准
  • CLion / VSCode 原生支持

六、使用 IDE(可选)

✅ VS Code(最流行)

sudo snap install code --classic

安装插件:

  • C/C++
  • CMake Tools

✅ CLion(专业)

  • 官方支持 CMake
  • 非常适合 C++ 项目

七、推荐项目结构(总结)

MyProject/
├── CMakeLists.txt
├── include/
├── src/
├── build/
└── README.md

八、我可以继续帮你

你可以告诉我:

  • ✅ 是 新手学习 还是 实际项目
  • ✅ 是否使用 CMake / Makefile
  • ✅ 是否涉及 多线程 / 网络 / OpenCV / ROS

我可以直接帮你生成一个 完整可运行的项目模板

0