基于麒麟操作系统开发C/C++项目

468 阅读3分钟

一、初识

当你在 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 这样的版本控制系统来跟踪代码更改是一个好习惯。

  • 库依赖性: 如果您的项目依赖于外部库,考虑使用包管理器(如 yumdnf)来管理这些依赖性。对于 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,建议查阅其官方文档,并考虑学习更高级的功能,如测试、安装命令、脚本模式等。