zoukankan      html  css  js  c++  java
  • vcpkg custom triplet

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

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

    使用custom 的 setup.py 进行打包

    python setup.py bdist_wheel
    

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

    python -m twine uplodat distpackage.whl
    

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

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

  • 相关阅读:
    软件测试的方法
    常用的adb
    正则表达式
    Python学习笔记(九)————进程和线程
    CodeForces
    华为FusionSphere openstack安装
    华为FusionCompute单节点安装教程--VRM主机的安装
    华为FusionCompute单节点安装教程--CNA主机的安装
    华为FusionSphere--存储管理
    华为FusionSphere--架构介绍
  • 原文地址:https://www.cnblogs.com/zhaofeng-shu33/p/10771521.html
Copyright © 2011-2022 走看看