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有關;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM