vcpkg custom triplet

需求是要弄一个用 pip 发布的python 包,使用 boost-python 桥接 原C++代码,发布时不想带 boost-python 的运行时库,因此需要弄静态的 boost-python库,在 Windows平台下使用vcpkg 的自定义 triplet实现。
在 vcpkg\triplets 根目录下新建 x64-windows-dynamic.cmake

set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "python3")
    set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()

上面的设置使得对python3 这个port完全动态编译,这个库是 boost-python 的依赖库;对于 boost库,运行时库是动态的(/MD),但库本身是静态的,由于vcpkg采用统一的命名规范,与 boost windows平台下库的名称不太一样。
之后使用vcpkg install boost-python:x64-windows-dynamic,同样方法安装其他库即可(均为链接动态的CRT和静态的库本身)

初始化cmake 项目时使用

cmake "-GVisual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-dynamic ..

其中VCPKG_ROOT是环境变量,指向本机vcpkg的安装目录。

使用custom 的 setup.py 进行打包

python setup.py bdist_wheel

输入用户名和密码上传到pypi.org

python -m twine uplodat dist\package.whl

package.whl换成你实际的包名。

然后在有相同python版本的windows电脑上(比如都是python3.6)可以用 pip install package 进行测试。

转载于:https://www.cnblogs.com/zhaofeng-shu33/p/10771521.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值