草庐IT

rust-analyzer

全部标签

windows - 为什么 Rust 在构建 DLL 时导出其整个标准库?

我目前正在尝试使用Rust编写一个动态库,它将从现有程序中加载。我需要导出一些具有特定名称和调用约定的函数。一切正常,但只要我使用标准库中的任何东西:DLL大小膨胀到超过3MiB(不是很漂亮,但我可以接受)整个标准库从DLL中导出。这是包含所有导出的列表:http://pastebin.com/LsG1u96C(5100个函数)我是否遗漏了一些编译器开关?我使用rustc编译了以下代码,没有任何选项:#![crate_type="dylib"]#![feature(std_misc)]usestd::ffi::CString;#[link(name="user32")]#[allow(

windows - 如何使用 Atom 编辑器创建、构建、运行和调试 Rust 程序?

我正在寻找在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 - 如何在 Rust 中使用 Redis 存储/获取结构?

我在想办法以编程方式实例化具有设置值的结构(其中一个可能是另一个嵌套结构-或不是)-并将其保存在Redis中.从Redis中将其取回结构我知道要在这里实现ToRedisArgs和FromRedisValue两个特征,但即使对于我非常简单的2个结构,我也不知道要写什么来实现他们在使用rust。我做了一个简单的例子:externcrateredis;useredis::Commands;//fnfetch_an_integer()->redis::RedisResult{////connecttoredis//letclient=try!(redis::Client::open("redi

ios - 在 iOS 应用程序中添加多个静态 Rust 库

我有两个用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符号提取到单独的库中吗?或者符号可以命名空间吗

iOS OpenGL ES Analyzer 列出 "Non-Existent Framebuffer Attachment"和 "Missing Framebuffer Attachment",但 FBO 有效

我正在使用OpenGL帧缓冲区对象(FBO)在iOS上实现模板阴影。代码有效——也就是说,从视觉上看,模板缓冲区正在完成这项工作,而且性能似乎还不错。但是,当我通过OpenGLESAnalyzer仪器运行应用程序时,它会提示“不存在的帧缓冲区附件”和“缺少帧缓冲区附件”。我无法理解这些消息,因为FBO确实有颜色、深度和模板的附件。对glCheckFramebufferStatus()的调用返回GL_FRAMEBUFFER_COMPLETE,表示没有问题。这是Instrument的OpenGL分析器中的错误吗?另见thisthread,它没有给出答案,但提出了同样的问题。

objective-c - 'garbage value' 'Left operand of ' 生成的/' is a garbage value' 警告中的 "Build & Analyze"是什么?

当我在Xcode中“构建和分析”这段代码时,我收到一条我不理解的警告。这是有问题的方法:-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{UITouch*touch=[touchesanyObject];CGPointlocation=[touchlocationInView:self];CGPointrelativePosition=CGPointMake(1.0-(location.x/self.bounds.size.width),location.y/self.bounds.size.height);[[S

ios - iOS 对 Rust 的支持现状如何?

Thisdocument是说由于缺乏分段堆栈支持,iOS目标不支持安全任务。我查看了Rust的问题跟踪器,这与32位版本的iOS的线程本地存储有些相关。好吧,我对这类话题不是很熟悉。无论如何,thistext是说分段堆栈方法将被放弃。有anHNentry这表明在64位系统中并不是真正需要它。我对此感到困惑。iOS对Rust的支持现状如何?任务完全没有堆栈保护?还是仅在64位中protected? 最佳答案 有一个blogpost声称RustisnowcompletelyportedtoiOS:allarchitecturesford

tcp - 简单的 Rust TCP 服务器和客户端不接收消息并且永不终止

我正在尝试生成一个服务器并在不同的线程上连接到它。我知道Rust有阻塞I/O,但我觉得我应该能够在不同的线程中连接服务器。我对线程的了解不多。最终游戏是通过网络连接到该服务器。这就是我用player_streamTCPStream模拟的内容。player_stream会一直等到它的缓冲区中有内容。一旦在那里写入了一些东西,它就会响应回服务器。照原样,程序不会终止。usestd::net::{TcpListener,TcpStream};usestd::io::{BufReader,BufWriter};usestd::io::Write;usestd::io::Read;usestd:

linux - Rust 1k TCP 连接限制

我正在编写一个高吞吐量的多线程Rust服务器。服务器一次需要处理大约10-20k的连接。我已经编写了程序并且速度非常快,但是,它最多只允许1k连接。1k之后,TCPListener不会返回任何其他内容,直到当前连接被删除。我在Rust内部看不到设置连接限制的任何地方。这是core::net的Rust限制还是系统限制?我在Linux4.14.15上运行,开发服务器将在4.14.xxxx上。使用rust1.23.0 最佳答案 我认为这是系统限制。如果您键入ulimit-n,您将看到打开的最大文件数,我认为它也适用于套接字。尝试输入uli

tcp - Rust TcpListener 不响应外部请求

我的主要功能是这样的:fnmain(){letlistener=TcpListener::bind("192.168.1.187:9527").unwrap();println!("Listeningforconnectionsonport{}",9527);forstreaminlistener.incoming(){matchstream{Ok(stream)=>{thread::spawn(move||{letreq_stream=&stream.try_clone().unwrap();letreq=request::new(req_stream);letres=respons