2. 开发环境搭建:Ubuntu系统准备、CMake与GCC工具链、Python3与pip、Git版本管理、VS Code配置

说实话,AUTOSAR AP 的开发环境搭建,是很多初学者第一个栽跟头的地方。我记得刚带团队时,有个同事花了两天时间配置环境,结果编译第一个示例就报错——后来发现是 GCC 版本不对。所以这一章,我带你一步步把环境搭好,少走弯路。

2.1 Ubuntu 系统准备

我个人习惯用 Ubuntu 22.04 LTS。为什么?因为 AUTOSAR AP 的官方参考实现大多基于这个版本验证过。你如果用的是 20.04 或 24.04,问题也不大,但要注意工具链版本兼容性。

最低要求:

  • CPU:4 核以上(编译 adaptive 应用时,多核优势明显)
  • 内存:8GB 以上(我建议 16GB,否则跑虚拟机+编译会卡)
  • 磁盘:至少 50GB 空闲空间(SDK、工具链、中间件加起来不小)

安装完成后,先做两件事:

# 更新软件源
sudo apt update && sudo apt upgrade -y

# 安装基础依赖
sudo apt install -y build-essential wget curl vim git

小技巧: 如果你用虚拟机,建议给 Ubuntu 分配至少 4 个 CPU 核心和 8GB 内存。我曾经在 2 核 4GB 的虚拟机上编译一个 adaptive 示例,等了 40 分钟……后来加了核心,10 分钟搞定。

2.2 CMake 与 GCC 工具链

AUTOSAR AP 的构建系统基于 CMake,编译器用 GCC。这两个是核心工具,缺一不可。

2.2.1 安装 GCC

AP 规范要求 C++17 标准,所以 GCC 版本至少 9.0 以上。我推荐 GCC 11 或 12。

# 安装 GCC 和 G++
sudo apt install -y gcc-11 g++-11

# 设置默认版本(可选)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100

# 验证版本
gcc --version
g++ --version

避坑指南: 我曾经遇到过一个问题——系统默认的 GCC 是 9,但某个 AP 库要求 GCC 11 的新特性。编译时报了一堆模板错误,排查了半天。所以建议你直接装 GCC 11 或 12,省心。

2.2.2 安装 CMake

CMake 版本建议 3.20 以上。Ubuntu 22.04 自带的 CMake 是 3.22,够用。如果你需要最新版,可以手动安装:

# 方法一:apt 安装(推荐)
sudo apt install -y cmake

# 方法二:从官网下载最新版
wget https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0-linux-x86_64.tar.gz
tar -xzf cmake-3.28.0-linux-x86_64.tar.gz
sudo mv cmake-3.28.0-linux-x86_64 /opt/cmake
export PATH=/opt/cmake/bin:$PATH

# 验证
cmake --version

为什么 CMake 这么重要?说白了,AP 的模块之间依赖关系复杂,CMake 的 find_package 和 target_link_libraries 能帮你自动管理这些依赖。你想想看,如果手动写 Makefile,光是链接 ara::core、ara::com 这些库就够你头疼的。

2.3 Python3 与 pip

Python 在 AP 开发中主要用来跑脚本——代码生成、配置解析、测试自动化等。Ubuntu 22.04 自带 Python 3.10,够用。

# 安装 Python3 和 pip
sudo apt install -y python3 python3-pip

# 验证
python3 --version
pip3 --version

我个人习惯创建一个虚拟环境,避免污染系统 Python:

# 安装 virtualenv
pip3 install virtualenv

# 创建并激活虚拟环境
mkdir ~/ap_workspace
cd ~/ap_workspace
virtualenv venv
source venv/bin/activate

经验之谈: 我在项目中遇到过好几次因为 Python 包版本冲突导致代码生成脚本崩溃的情况。用虚拟环境隔离后,再也没出过这种问题。建议你也养成这个习惯。

2.4 Git 版本管理

Git 是开发者的基本功,AP 项目也不例外。Ubuntu 安装 Git 很简单:

sudo apt install -y git
git --version

配置你的身份信息:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 推荐配置:使用 VSCode 作为默认编辑器
git config --global core.editor "code --wait"

这里我多说一句。AP 项目通常包含多个仓库——ara-api、ara-exec、manifest 等。我建议你用一个 repo 工具来管理多仓库。Google 的 repo 工具在嵌入式 Linux 开发中很常见,AP 项目也可以用:

# 安装 repo
sudo apt install -y repo

# 初始化一个 AP 项目(示例)
mkdir my_ap_project
cd my_ap_project
repo init -u https://your-manifest-repo.git
repo sync

Git 工作流建议:

  • 每个功能模块建一个分支,不要直接在 main 上改
  • 提交信息写清楚:fix(ara::com): 修复服务发现超时问题
  • 定期 rebase,保持提交历史干净

2.5 VS Code 配置

VS Code 是我最推荐的 AP 开发 IDE。轻量、插件丰富、CMake 集成好。安装方式:

# 下载 .deb 包安装
wget https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64
sudo dpkg -i code_*.deb

# 或者用 snap(Ubuntu 推荐)
sudo snap install --classic code

安装完成后,配置以下插件:

插件名称 用途 是否必装
C/C++ (ms-vscode.cpptools) 代码补全、调试 是
CMake Tools (ms-vscode.cmake-tools) CMake 项目构建、配置 是
GitLens Git 历史、代码注解 推荐
Python Python 脚本支持 推荐
YAML ARXML 和 manifest 文件高亮 推荐

配置 CMake Tools 的 settings.json:

{
  "cmake.configureOnOpen": true,
  "cmake.generator": "Unix Makefiles",
  "cmake.buildDirectory": "${workspaceFolder}/build",
  "C_Cpp.default.cppStandard": "c++17",
  "C_Cpp.default.compilerPath": "/usr/bin/g++-11"
}

我的配置习惯: 我会在 VS Code 里同时打开多个工作区——一个放 SDK 源码,一个放自己的 adaptive 应用。用 Ctrl+R 快速切换,效率很高。

2.6 环境验证:编译一个最小 AP 示例

环境搭好了,我们来验证一下。创建一个简单的 CMake 项目:

mkdir ~/ap_workspace/hello_ap
cd ~/ap_workspace/hello_ap

创建 CMakeLists.txt:

cmake_minimum_required(VERSION 3.20)
project(HelloAP VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(hello_ap main.cpp)

创建 main.cpp:

#include <iostream>

int main() {
    std::cout << "Hello, AUTOSAR AP!" << std::endl;
    return 0;
}

编译运行:

mkdir build && cd build
cmake ..
make
./hello_ap

如果输出 Hello, AUTOSAR AP!,恭喜你,环境搭建成功!

常见问题: 如果 cmake .. 报错找不到编译器,检查一下 gcc --version 是否正常。我曾经在 Docker 容器里遇到过 gcc 没装全的情况,apt install build-essential 能解决大部分问题。

2.7 知识体系总览

下面这张图总结了本章的核心内容,帮你理清各个工具之间的关系:

AUTOSAR AP 开发环境知识体系 开发环境 Ubuntu 系统 CMake + GCC Python3 + pip Git 版本管理 22.04 LTS GCC 11/12 虚拟环境 repo 多仓库 VS Code 集成开发环境 验证:编译 hello_ap 示例,输出 "Hello, AUTOSAR AP!"

这张图展示了开发环境的层次关系。底层是 Ubuntu 系统,中间层是工具链和版本管理,上层是 VS Code 集成环境。每一层都依赖下一层,所以搭建时要按顺序来。

2.8 本章小结

嗯,到这里环境就搭好了。你可能会觉得步骤有点多,但相信我——一次配好,后面几十章都能受益。我当年第一次配 AP 环境时,光 CMake 版本就折腾了半天。现在你跟着这个流程走,应该半小时内就能搞定。