我是tryingtofollowthisblog但在Windows和最新的Rust上。在我看来,做这样事情的正确方法在Rust中经常发生变化,所以我希望有一个最新的Windows适应。到目前为止我尝试了什么:我安装了gcc-arm-embedded.我在手动交叉编译libcore时取得了部分成功,但后来我转而使用推荐的xargo,其功能(我读过)最终将被包含在Cargo中。虽然我对其中的任何内容都不太了解,但我希望能够到达可以编写/运行代码的部分,然后也许我可以重新更好地理解编译。与japaric'sawesomehelp,我能够让“aarch64”目标构建工作以生成.o文件(asof
我正在用mingw生成一个供Rust使用的dll。我知道我可以将我的libxxx.a文件放在"Rust\bin\ruSTLib\x86_64-pc-windows-gnu\lib"目录中,这就是我的内容我现在正在做。但我宁愿将它保存在我的项目目录中。我如何让Cargo告诉rustc在哪里找到它? 最佳答案 首先,可以使用cargorustc将-Ldir参数直接传递给rustc:cargorustc---Llib如果您的库位于lib子目录中。另一种可能更方便的方法是使用buildscript自动将库目录传递给rustc。然后它将与其他
如果我用Rustlanguage构建一个DLL,它是否需要libgcc*.dll在运行时出现?一方面:我在互联网上的某个地方看到过一个帖子,声称是的;rustc.exe在其目录中有libgcc_s_dw2-1.dll,下载后cargo.exe没有dll将无法运行来自http://crates.io网站;另一方面:我看过有关使用Rust构建玩具操作系统内核的文章,因此它们肯定不需要libgcc动态库。所以,我很困惑。什么是确定的答案? 最佳答案 Rust为Windows提供了两个主要的工具链:x86_64-pc-windows-gnu
我有2个文件:func.rs#[no_mangle]pubexternfndouble_input(input:i32)->i32{input*2}main.c#include#includeexternint32_tdouble_input(int32_tinput);intmain(){intinput=4;intoutput=double_input(input);printf("%d*2=%d\n",input,output);return0;}我想在Rust中创建静态库并将库链接到main.c。我的事件工具链是stable-i686-pc-windows-gnu。我在cm
我目前正在尝试使用Rust编写一个动态库,它将从现有程序中加载。我需要导出一些具有特定名称和调用约定的函数。一切正常,但只要我使用标准库中的任何东西:DLL大小膨胀到超过3MiB(不是很漂亮,但我可以接受)整个标准库从DLL中导出。这是包含所有导出的列表:http://pastebin.com/LsG1u96C(5100个函数)我是否遗漏了一些编译器开关?我使用rustc编译了以下代码,没有任何选项:#![crate_type="dylib"]#![feature(std_misc)]usestd::ffi::CString;#[link(name="user32")]#[allow(
我正在寻找在Atom编辑器中创建、构建、运行和调试第一个Rust应用程序的分步说明。到目前为止,我已经安装了Atom编辑器,安装了language-rust包,并且毫无结果地试图在编辑器中找到一个选项来创建Rust“项目”或“包”,而我的google-fu惨遭失败。免责声明:我在Windows上,非常熟悉VisualStudio,不熟悉*nix类开发环境,但渴望尝试Rust。 最佳答案 安装build包。安装build-cargo包按Windows键R输入cmd并按Return或单击Ok键入cdC:\path\of\your\pro
我在想办法以编程方式实例化具有设置值的结构(其中一个可能是另一个嵌套结构-或不是)-并将其保存在Redis中.从Redis中将其取回结构我知道要在这里实现ToRedisArgs和FromRedisValue两个特征,但即使对于我非常简单的2个结构,我也不知道要写什么来实现他们在使用rust。我做了一个简单的例子:externcrateredis;useredis::Commands;//fnfetch_an_integer()->redis::RedisResult{////connecttoredis//letclient=try!(redis::Client::open("redi
我正在构建一个使用一些Rust库的iOS框架。现在,这些库被编译成一个静态库。为了让我启用位码(这是苹果应用程序瘦身所必需的),Rust库需要在启用位码的情况下构建。我相信这需要llvm标志:-fembed-bitcode。有没有办法在Cargo中做到这一点? 最佳答案 您可以通过设置RUSTFLAGSenvironmentvariable告诉cargo将您希望的任何参数传递给Rust编译器.Rustc编译器有一个标志-Cllvm-args=val,您可以使用它来将额外的参数传递给llvm。因此,在您的情况下,您会调用:RUSTFL
我有两个用Rust编写的库(具有C兼容接口(interface)),我正试图将它们集成到iOS应用程序中。在同一项目中集成两个.a文件时,出现错误,因为Rust标准库中的符号现在多次出现:duplicatesymbol_rust_eh_personalityin:/Users/x/Development/ios-client/Y/Rust/lib1_ffi.a(lib1_ffi.0.o)/Users/x/Development/ios-client/Y/Rust/lib2_ffi.a(lib2_ffi.0.o)...如何解决?可以将Rust符号提取到单独的库中吗?或者符号可以命名空间吗
Thisdocument是说由于缺乏分段堆栈支持,iOS目标不支持安全任务。我查看了Rust的问题跟踪器,这与32位版本的iOS的线程本地存储有些相关。好吧,我对这类话题不是很熟悉。无论如何,thistext是说分段堆栈方法将被放弃。有anHNentry这表明在64位系统中并不是真正需要它。我对此感到困惑。iOS对Rust的支持现状如何?任务完全没有堆栈保护?还是仅在64位中protected? 最佳答案 有一个blogpost声称RustisnowcompletelyportedtoiOS:allarchitecturesford