这是一个完整的 Conan 包创建和推送示例。
conan-push/ ├── conanfile.py # Conan 包定义文件 ├── CMakeLists.txt # CMake 构建配置 ├── include/ │ └── hello.h # 头文件 ├── src/ │ └── hello.cpp # 源代码 ├── push.sh # 单包推送脚本 ├── push_batch.sh # 批量推送脚本 └── README.md # 本文件
pip install conan
# macOS
brew install cmake
# Ubuntu/Debian
sudo apt-get install cmake build-essential
# Windows
# 下载安装 CMake 和 Visual Studio
# 给脚本执行权限
chmod +x push.sh
# 推送默认版本 (1.0.0)
./push.sh
# 推送指定版本
./push.sh 2.0.0
# 给脚本执行权限
chmod +x push_batch.sh
# 推送 1 个包
./push_batch.sh 1
# 推送 5 个包(版本号自动递增)
./push_batch.sh 5
# 1. 添加远程仓库
conan remote add coding-conan http://codingcorp-conan.pkg.artifact-dev-02.devnb.codingcorp.net/silky_test/coding-conan
# 2. 登录认证
conan remote login coding-conan coding-conan-1768881572817 -p 94fb12a3797557f54ec13fd230b635ccebf707bc
# 3. 创建包
conan create . --version=1.0.0 --build=missing
# 4. 上传包
conan upload hello/1.0.0 -r coding-conan --confirm
# 搜索包
conan search hello -r coding-conan
# 查看包详情
conan search hello/1.0.0 -r coding-conan
创建 conanfile.txt:
[requires]
hello/1.0.0
[generators]
CMakeDeps
CMakeToolchain
安装依赖:
conan install . -r coding-conan --build=missing
编辑 conanfile.py:
class HelloConan(ConanFile):
name = "your-package-name" # 修改包名
version = "2.0.0" # 修改版本
在 conanfile.py 中添加:
class HelloConan(ConanFile):
# ...
requires = "boost/1.82.0", "openssl/3.1.0"
include/hello.hsrc/hello.cppCMakeLists.txt检查用户名和密码是否正确:
conan remote login coding-conan coding-conan-1768881572817 -p YOUR_PASSWORD
确保已安装 CMake 和 C++ 编译器:
cmake --version
g++ --version # 或 clang++ --version
如果要覆盖,使用 --force 参数:
conan upload hello/1.0.0 -r coding-conan --confirm --force
# 列出所有本地包
conan list "*"
# 查看特定包
conan list "hello/*"
# 删除本地包
conan remove "hello/1.0.0"
# 查看远程仓库列表
conan remote list
# 移除远程仓库
conan remote remove coding-conan
# 搜索包
conan search hello -r coding-conan
# 查看包详情
conan inspect .
# 创建包(不上传)
conan create . --version=1.0.0
# 仅构建
conan build .
# 导出包到本地缓存
conan export . --version=1.0.0
# 清理构建目录
conan cache clean