• 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 进行测试。

  • 相关阅读:
    括号匹配性检测C语言实现
    预处理命令--宏定义
    *运算和&运算
    retain, copy, assign以及autorelease
    自定义 一个单例
    多米音乐笔试题
    UI-自定义视图、视图控制器
    Foundation框架—集合
    Foundation框架—字符串
    Foundation框架—结构体
  • 原文地址:https://www.cnblogs.com/zhaofeng-shu33/p/10771521.html
Copyright © 2020-2023  润新知