1 unstable release
0.1.1 | Dec 4, 2023 |
---|
#1661 in Text processing
Used in get-host-ip
21KB
514 lines
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
操作系统
要么,从setup直接下载安装包,并本地安装之。缺点就是会“污染”你的PATH
环境变量。
要么,从binary下载预编译包。在解压缩之后,将其下的bin
目录添加到你的编译环境变量RUST_FLAGS
内。比如,
set RUST_FLAGS=-L C:\libiconv-1.9.2-1-bin\bin
吐槽
同一款libiconv
链接库怎么对Linux
与Windows
操作系统提供了不同名的导出函数呢?这个“缺德的”命名差异导致我在【编译期·动态链接】环节卡住了好几天。相对于Linux
版的链接库导出函数名,Windows
版的每个导出函数都有一个lib
前缀 —— 故意的吧?真要命。
Dependencies
~51KB