• Cargo.toml配置


    0.在Cargo.toml里添加的依赖,哪怕程序里没有用到,它也会编译(不过由于没有用到,第二次build就不会再去编译了【但是不是说就随便添加,比如我们的代码在依赖a里和依赖b(我们的代码相当于是依赖的插件,即我们给依赖库写依赖代码)里都会用到,然而我们在Windows系统只需要依赖a,Linux系统只需要依赖b,如果我们两个都添加了,然后改了代码,会导致a和b都重新构建,所以最好是用cfg来条件添加依赖】),所以最好是只添加会用到的依赖;

    1.有的时候我们可能会遇到这种情况,就是希望如果要编译的目标平台(比如交叉编译由Ubuntu - Windows[10|7|8]),我们希望不同的target添加一些额外的切换一些依赖【最典型的就是GUI后端,win7是DX11,win10是DX12,MacOS是Metal,Linux是Vulkan】

    2.这个时候我们可以用这种dependencies配置:

    [dependencies]
    [target.'cfg(target_os = "windows")'.dependencies]
    nameof = "1.0"
    
    [target.'cfg(target_os = "linux")'.dependencies]
    serde="1"

    这里的target_os是根据我们cargo build --target=x86_64-pc-windows-gnu来的,我们可以用rustc --print=cfg --target=x86_64-pc-windows-gnu命令查看当target平台是x86_64-pc-windows-gnu的时候,target_os,target_arch,target_env等是什么;

    CARGO_CFG_TARGET_OSCARGO_CFG_TARGET_ARCH等环境变量是没有关系的;

    build时加个-v可以查看这次build用到了哪些依赖

    3.如果要区分Windows10,Windows7,可以自定义target,这个待研究,初步看了下和RUST_TARGET_PATH有关;

  • 相关阅读:
    Hadoop 的版本问题
    SSH 端口转发原理
    KM算法
    最大流算法小结
    pku 2195 KM算法求最小权二分匹配
    SAP(最短增广路算法) 最大流模板
    最大流模板
    pku 1459 最大流 SAP
    pku Drainage Ditches 简单最大流 直接套模板 注意可能有重边
    推荐:吴军 谷歌黑板报 《浪潮之颠》
  • 原文地址:https://www.cnblogs.com/silentdoer/p/13060190.html
Copyright © 2020-2023  润新知