首页 C++包管理器
文章
取消

C++包管理器

CPP包管理器

可选择如下。尝试通过包管理器简单完成项目依赖管理和编译工作。参考:打包一沓开源的 C/C++ 包管理工具送给你! - 削微寒 - 博客园

  1. Vcpkg

  2. Conan:一个好东西中文博客

  3. xrepo

Conan

个人体感仅开发windows应用用vcpkg,对于跨平台或者cmake项目首选Conan。搜索了一些基础库后发现conan包更齐,所以先用Conan.

安装

参考文档:Install — conan 1.53.0 documentation

1
$ pip install conan

这里有个问题:

  • We strongly recommend using virtualenvs (virtualenvwrapper works great) for everything related to Python. (check https://virtualenvwrapper.readthedocs.io/en/stable/, or https://pypi.org/project/virtualenvwrapper-win/ in Windows) With Python 3, the built-in module venv can also be used instead (check https://docs.python.org/3/library/venv.html). If not using a virtualenv it is possible that conan dependencies will conflict with previously existing dependencies, especially if you are using Python for other purposes.

确实看到pip安装包就想到环境的问题,特别像python这种东西一个系统可能有数十份,每个python的sitepackages包像shit一样拉的到处都是。所以这里牵扯到一个题话外python虚拟环境

python虚拟环境

之前对于python虚拟环境一般用的是Anaconda,也不是不行,但感觉Anaconda太臃肿了,还没开始用就几G到十几G,虽然确实配套的工具和各种包很齐全,但如果不是专业目的,只是为了一个python环境,完全没必要。

所以,解决方案直接用:官方Python + pip virtualenvwrapper.

  1. 首先下载一个官方python(可能系统中原本有别的python,但下载一个自己首选的、自己管理的、干净的)

  2. 我个人会添加一个Python_Root环境变量手动切换各个地方各种版本的py(主要是某些项目需要必须用内部的python)

  3. get-command pythonn(Powershell)/where python(CMD)确认当前的python. 同时python -m site查看一下包的位置,发现安装位置是python目录下的LIB目录,不会到处拉屎。

  4. 搜索一下virtualenvwrapper,发现pip search没法用了。解决:pip install pip-searchpip_search xxx.

  5. 安装virutalenvwrapper-win

    1
    
    $ pip install virtualenvwrapper-win
    
  6. 添加环境变量:WORKON_HOME -> 指向{Python目录}/env

  7. 创建虚拟环境:

    1
    2
    3
    
    $ mkvirtualenv conan
    $ workon conan # 命令必须在CMD而不能Powershell
    $ pip install conan
    
  8. 到此完成。virtualenvwrapper的一些命令:mkvirtualenv lsvirtualenvrmvirtualenvworkondeactivatecdprojectcdsitepackagescdvirtualenvvirtualenvwrapper(列举上面命令).

  9. 额外:像上述说的virutalenvwrapper-win本身只支持CMD不支持Powershell,而Windows上默认终端Powershell,在某些IDE里面的终端切换成CMD更麻烦(CMD也更加难用),所以配置一下Powershell命令:

    1
    2
    3
    4
    5
    6
    7
    8
    
    $ git clone https://github.com/regisf/virtualenvwrapper-powershell ./
    $ ./install.ps1
    # 用法
    lsvirtualenv (alias: Get-VirtualEnvs) : List all Virtual environments
    mkvirtualenv (alias: New-VirtualEnv) : Ceate a new virtual environment
    rmvirtualenv (alias: Remove-VirtualEnv) : Remove an existing virtual environment
    workon: Activate an existing virtual environment
    Get-VirtualEnvsVersion: to display the current version.
    

    需要Powershell能够执行脚本:

    1
    
    $ Set-ExecutionPolicy RemoteSigned # 管理员权限
    

配置

默认配置文件位置 ~/.conan/conan.conf,~表示用户目录,Windows为C:\Users<用户名>.conan\conan.conf

配置文件中有详细的注释信息,根据自己的需要修改即可,我修改存储目录和下载缓存目录(默认包下载在.conan\data目录下)

1
2
3
4
5
6
[storage]
# This is the default path, but you can write your own. It must be an absolute path or a
# path beginning with "~" (if the environment var CONAN_USER_HOME is specified, this directory, even
# with "~/", will be relative to the conan user home, not to the system user home)
path = F:/Library/ConanPackages
download_cache = F:/Library/ConanPackages/cache

使用

关于Conan的学习参考官方文档和前面的中文翻译博客。这里记录一些实践中特别的地方。

remote仓库

注意新的仓库名称

1
conan search poco --remote=conancenter

测试

使用Poco\md5的例子测试,个人编译cmake项目使用CLIon,加载时cmake项目选择release模式。conan install默认下载release库。

本文由作者按照 CC BY 4.0 进行授权

从男性角度看唐山女权

旧配置笔记本更新Windows11-CPU不兼容