ccgo 3.4.1

A high-performance C++ cross-platform build CLI
# 快速开始

5 分钟开始使用 CCGO!本指南将引导您创建第一个跨平台 C++ 项目。

## 创建新项目

```bash
# 创建名为 "hello" 的新项目
ccgo new hello

# 进入项目目录
cd hello/hello
```

生成的项目结构:

```
hello/
└── hello/           # 主项目目录
    ├── CCGO.toml    # 项目配置
    ├── CMakeLists.txt
    ├── include/     # 公共头文件
    │   └── hello/
    │       └── hello.h
    ├── src/         # 源文件
    │   └── hello.cpp
    ├── tests/       # 单元测试
    │   └── test_hello.cpp
    ├── benches/     # 基准测试
    │   └── bench_hello.cpp
    └── examples/    # 示例程序
        └── example_hello.cpp
```

## 为您的平台构建

=== "本地构建"
    ```bash
    # 为当前平台构建
    ccgo build
    ```

=== "Android"
    ```bash
    # 为 Android 构建(多架构)
    ccgo build android --arch arm64-v8a,armeabi-v7a
    ```

=== "iOS"
    ```bash
    # 为 iOS 构建(需要 macOS)
    ccgo build ios
    ```

=== "Docker 构建"
    ```bash
    # 使用 Docker 为任何平台构建(在任何操作系统上工作)
    ccgo build linux --docker
    ccgo build windows --docker
    ccgo build macos --docker
    ```

## 运行测试

```bash
# 运行单元测试
ccgo test

# 运行基准测试
ccgo bench
```

## 添加依赖

编辑 `CCGO.toml`:

```toml
[dependencies]
# 从 Git 仓库
spdlog = { git = "https://github.com/gabime/spdlog.git", tag = "v1.12.0" }

# 从本地路径
# mylib = { path = "../mylib" }

# 从注册表(即将推出)
# fmt = "10.1.1"
```

安装依赖:

```bash
ccgo install
```

在代码中使用依赖(`src/hello.cpp`):

```cpp
#include <spdlog/spdlog.h>

void greet(const std::string& name) {
    spdlog::info("Hello, {}!", name);
}
```

## 发布您的库

=== "Maven Local"
    ```bash
    # 构建并发布到 Maven Local
    ccgo publish android --registry local
    ```

=== "CocoaPods"
    ```bash
    # 构建并发布到 CocoaPods
    ccgo publish apple --manager cocoapods
    ```

=== "Swift Package Manager"
    ```bash
    # 构建并发布到 SPM
    ccgo publish apple --manager spm --push
    ```

## 配置您的项目

编辑 `CCGO.toml` 自定义项目:

```toml
[package]
name = "hello"
version = "1.0.0"
description = "跨平台 C++ 库"
authors = ["您的名字 <you@example.com>"]
license = "MIT"

[library]
type = "both"  # "static", "shared" 或 "both"
namespace = "hello"

[dependencies]
spdlog = { git = "https://github.com/gabime/spdlog.git", tag = "v1.12.0" }

[build]
cpp_standard = 17
cmake_minimum_version = "3.20"

[android]
min_sdk_version = 21
target_sdk_version = 33

[ios]
min_deployment_target = "12.0"
```

## 下一步

- [配置指南]configuration.md - 了解所有 CCGO.toml 选项
- [平台支持]../platforms/index.md - 特定平台构建指南
- [功能特性]../features/build-system.md - 探索 CCGO 功能
- [CLI 参考]../reference/cli.md - 完整命令参考

## 常用命令

```bash
# 项目创建
ccgo new <name>          # 创建新项目
ccgo init                # 在现有项目中初始化 CCGO

# 构建
ccgo build <platform>    # 为特定平台构建
ccgo build --docker      # 使用 Docker 构建
ccgo clean               # 清理构建产物

# 测试
ccgo test                # 运行测试
ccgo bench               # 运行基准测试

# 依赖管理
ccgo install             # 安装依赖
ccgo install --locked    # 使用锁文件中的精确版本
ccgo vendor              # 本地 vendor 依赖

# 发布
ccgo publish <platform> --registry <type>  # 发布库
ccgo tag                 # 创建版本标签

# 工具
ccgo check <platform>    # 检查平台需求
ccgo doc --open          # 生成并打开文档
```

## 故障排除

### 构建失败

```bash
# 检查平台要求
ccgo check android

# 如果本地工具链有问题,尝试 Docker 构建
ccgo build android --docker
```

### 依赖问题

```bash
# 删除锁文件并重新安装
rm CCGO.lock
ccgo install

# Vendor 依赖以进行离线构建
ccgo vendor
```

### 需要帮助?

- 查看[文档]https://ccgo.readthedocs.io
- 浏览[示例]https://github.com/zhlinh/ccgo-now
-[GitHub Discussions]https://github.com/zhlinh/ccgo/discussions 提问
-[GitHub Issues]https://github.com/zhlinh/ccgo/issues 报告错误