Crates.io | iconv-compat-win-sys |
lib.rs | iconv-compat-win-sys |
version | 0.1.1 |
source | src |
created_at | 2023-12-04 08:03:56.884362 |
updated_at | 2023-12-04 08:03:56.884362 |
description | iconv bindings for Rust |
homepage | |
repository | https://github.com/stuartZhang/rust-iconv |
max_upload_size | |
id | 1057386 |
size | 30,600 |
iconv
链接库的Rust
绑定。
Cargo.toml
导入依赖因为已经与crates.io
上现有的包重名,所以请直接添加git
依赖:
iconv-sys = { git = "https://github.com/stuartZhang/rust-iconv", tag = "0.1.2" }
简单地讲,需要在操作系统内预置libiconv
动态链接库。
Linux
操作系统大部分主流Linux OS
都包含有libiconv
。若你的Linux OS
版本比较早或是compact
版而缺失了libiconv
也不必慌。按如下方式补装即可:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.1.tar.gz
tar -xzvf libiconv-1.9.1.tar.gz
cd libiconv-1.9.1.tar.gz
./configure --prefix=/usr/local
sudo make -j8
sudo make install
sudo ln -s /usr/local/lib/libiconv.so /usr/lib/libiconv.so
sudo ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
Windows
操作系统要么,从setup直接下载安装包,并本地安装之。缺点就是会“污染”你的PATH
环境变量。
要么,从binary下载预编译包。在解压缩之后,将其下的bin
目录添加到你的编译环境变量RUST_FLAGS
内。比如,
set RUST_FLAGS=-L C:\libiconv-1.9.2-1-bin\bin
同一款libiconv
链接库怎么对Linux
与Windows
操作系统提供了不同名的导出函数呢?这个“缺德的”命名差异导致我在【编译期·动态链接】环节卡住了好几天。相对于Linux
版的链接库导出函数名,Windows
版的每个导出函数都有一个lib
前缀 —— 故意的吧?真要命。