zoukankan      html  css  js  c++  java
  • 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有关;

  • 相关阅读:
    Ubuntu下sudo apt-get install vim 失败的解决办法
    电脑突然出现成功连接网络但不能上网、网络受限(解决办法)
    wxWidgets 安装方法(Windows 8.1 + Visual Studio 2013)
    wxWidgets界面开发工具wxFormBuilder的使用
    隐私策略
    MyEclipse 中自定义日期格式
    Debug Assertion Failed!
    p2 弹簧
    p2 关节
    p2 形状
  • 原文地址:https://www.cnblogs.com/silentdoer/p/13060190.html
Copyright © 2011-2022 走看看