一、初识
当你在 CentOS 系统上开发 C/C++ 项目时,通常会涉及到以下几个步骤:设置开发环境、编写代码、构建和测试以及最后的打包和发布。以下是这些步骤的详细教学:
1. 设置开发环境
在 CentOS 上,yum 是主要的包管理器。首先,确保您的系统是最新的:
sudo yum update
sudo yum groupinstall "Development Tools"
sudo yum install gcc-c++ cmake
2. 开始编写代码
为了本教程的目的,让我们创建一个简单的 "Hello World" 程序。
mkdir c_project
cd c_project
touch main.c
使用你喜欢的文本编辑器打开 main.c 并写入以下内容:
#include <stdio.h>
int main() {
printf("Hello, CentOS!\n");
return 0;
}
3. 构建和测试
回到终端,编译该程序:
gcc main.c -o hello
现在,您应该在目录中看到一个名为 hello 的可执行文件。运行它:
./hello
你应该看到输出:Hello, CentOS!
4. 打包和发布
一种常见的方法是使用 tar 命令创建一个 tarball:
tar czvf hello.tar.gz hello
现在,你可以分享和发布 hello.tar.gz 文件。
进一步发展:
-
CMake: 对于大型项目,您可能希望使用构建系统,如 CMake。这允许更加复杂的构建和测试过程。
-
版本控制: 使用像 Git 这样的版本控制系统来跟踪代码更改是一个好习惯。
-
库依赖性: 如果您的项目依赖于外部库,考虑使用包管理器(如
yum或dnf)来管理这些依赖性。对于 C++,您也可以考虑使用conan这样的包管理器。 -
自动化测试: 为项目添加自动化测试可以确保代码的质量。对于 C/C++,你可以考虑使用 Google Test 或 Catch2。
二、CMake
CMake 是一个跨平台的构建系统,用于自动生成构建工具的配置文件,比如 Makefiles 或 Microsoft Visual Studio 项目文件。以下是一个简单的 CMake 教学,以帮助你入门。
1. 安装 CMake
在 CentOS 上安装 CMake:
sudo yum install cmake
2. 基本的 CMakeLists.txt
为了使用 CMake,您需要在项目的根目录中创建一个名为 CMakeLists.txt 的文件。这是 CMake 的配置文件。
例如,为我们之前创建的 "Hello World" 项目创建一个 CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
# 项目名称和版本
project(HelloCentOS VERSION 1.0)
# 指定 C 标准
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED True)
# 添加一个可执行文件
add_executable(HelloCentOS main.c)
3. 使用 CMake 生成构建文件
mkdir build
cd build
cmake ..
这些命令会在一个名为 build 的新目录中生成构建文件。这是一个推荐的做法,因为这样可以保持源代码目录的整洁。
4. 使用构建文件构建项目
从 build 目录中:
make
这会生成一个名为 HelloCentOS 的可执行文件。
5. 添加库
假设你有一个库 mylib 和一个源文件 lib.c,你想链接到你的主程序。你可以这样修改你的 CMakeLists.txt:
add_library(mylib lib.c)
add_executable(HelloCentOS main.c)
target_link_libraries(HelloCentOS mylib)
6. 添加子目录
如果您的源代码分布在多个目录中,您可以使用 add_subdirectory() 命令。例如,如果你有一个 src 和一个 include 目录:
include_directories(include)
add_subdirectory(src)
这样,CMake 会查找 src 目录中的 CMakeLists.txt 文件并执行它。
7. 寻找外部库
使用 find_package() 可以查找并链接外部库。例如,为了查找并链接线程库:
find_package(Threads REQUIRED)
target_link_libraries(HelloCentOS Threads::Threads)
总结:
CMake 是一个非常强大的工具,上面只是涉及了它的基本功能。为了深入了解 CMake,建议查阅其官方文档,并考虑学习更高级的功能,如测试、安装命令、脚本模式等。