1个不稳定版本
0.1.1 | 2023年12月4日 |
---|
#1499 在 文本处理
被 get-host-ip 使用
21KB
514 行
rust-iconv
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
操作系统
或者,从安装包直接下载并安装,缺点是会“污染”你的PATH
环境变量。
或者,从预编译包下载。在解压缩之后,将其下的bin
目录添加到你的编译环境变量RUST_FLAGS
内。例如,
set RUST_FLAGS=-L C:\libiconv-1.9.2-1-bin\bin
吐槽
同一款libiconv
链接库怎么对Linux
与Windows
操作系统提供了不同名的导出函数呢?这个“缺德的”命名差异导致我在【编译期·动态链接】环节卡住了好几天。相对于Linux
版的链接库导出函数名,Windows
版的每个导出函数都有一个lib
前缀 —— 故意的吧?真要命。
依赖
~51KB