我用Rust写了一个小游戏,我曾经cargo build --release在Mac上编译发行版.
我试图与使用Ubuntu的朋友分享这个,但是当他试图运行二进制文件时,他得到了以下错误:
cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)
我搜索了这个,但没有找到答案.Rust声称没有"没有运行时间"吗?它不应该能够以二进制形式运行吗?
最近我参加了几次围棋面试.第一个问我How is channel implemented?,然后第二个问我How is goroutine implemented?.你可以猜到,下一个问道How is a Go interface implemented?.
我一直在使用Go六个月,但说实话,我从来没有关心或知道这些Go internals.
我试着通过阅读Go的源代码来学习这些,但却无法真正理解这些精髓.
所以问题是,对于Go中的菜鸟,我如何学习Go internals?
我试着写一个静态的HTTP文件服务器,但是当我尝试发送.jpg文件时我就陷入了困境TcpStream.
即使我read将文件作为二进制文件,浏览器似乎也无法解码图像:
extern crate chunked_transfer;
use std::net::{TcpListener, TcpStream};
use std::io::{Read, Write};
use std::thread;
use std::fs::File;
use chunked_transfer::Encoder;
fn main() {
let listener = TcpListener::bind("127.0.0.1:9527").unwrap();
println!("Listening for connections on port {}", 9527);
for stream in listener.incoming() {
match stream {
Ok(stream) => {
thread::spawn(|| handle_client(stream));
}
Err(e) => println!("Unable to connect: {}", e),
}
}
}
fn get_path(mut stream: &TcpStream) -> String {
let mut buf = [0u8; 4096];
match stream.read(&mut buf) {
Ok(_) => …Run Code Online (Sandbox Code Playgroud)