CPP包管理器
可选择如下。尝试通过包管理器简单完成项目依赖管理和编译工作。参考:打包一沓开源的 C/C++ 包管理工具送给你! - 削微寒 - 博客园
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.
首先下载一个官方python(可能系统中原本有别的python,但下载一个自己首选的、自己管理的、干净的)
我个人会添加一个
Python_Root
环境变量手动切换各个地方各种版本的py(主要是某些项目需要必须用内部的python)get-command pythonn
(Powershell)/where python
(CMD)确认当前的python. 同时python -m site
查看一下包的位置,发现安装位置是python目录下的LIB目录,不会到处拉屎。搜索一下virtualenvwrapper,发现
pip search
没法用了。解决:pip install pip-search
,pip_search xxx
.1
$ pip install virtualenvwrapper-win
添加环境变量:WORKON_HOME -> 指向{Python目录}/env
创建虚拟环境:
1 2 3
$ mkvirtualenv conan $ workon conan # 命令必须在CMD而不能Powershell $ pip install conan
到此完成。virtualenvwrapper的一些命令:
mkvirtualenv
、lsvirtualenv
、rmvirtualenv
、workon
、deactivate
、cdproject
、cdsitepackages
、cdvirtualenv
、virtualenvwrapper(列举上面命令)
.额外:像上述说的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库。