libiconv
在Macos
下使用cargo
编译项目时遇到libiconv
库出现问题,错误信息如下:
1 | ld: warning: object file (/Users/xiling/Work/dora/target/debug/libdora_node_api_cxx.a(78d20d63abadd48c-cxx.o)) was built for newer macOS version (15.1) than being linked (15.0) |
这个问题是使用的libiconv
库与macos
环境中的不匹配,我们需要使用brew
安装一个,brew install libiconv
。
再找项目的根目录下创建.cargo
文件夹,在此文件夹下创建config.toml
文件,文件中写入:
1 | [build] |
然后就可以正常编译了。
你可以使用otool
工具检查可执行文件是否正确链接到libiconv
,命令是otool -L /Users/xiling/Work/dora/target/debug/dora
, 检查输出中是否正确引用/opt/homebrew/Cellar/libiconv/1.18/lib/libiconv.2.dylib
。
使用nm
确认符号_libiconv
存在于libiconv
中。nm /opt/homebrew/Cellar/libiconv/1.18/lib/libiconv.2.dylib | grep _libiconv
。
以上只可能存在的解决办法,并不能确保一定能解决类似的问题,如果不能,你可以查看_libiconv or _iconv undefined symbol on Mac OSX
- Title: libiconv
- Author: starlitxiling
- Created at : 2025-01-02 14:22:48
- Updated at : 2025-01-02 14:38:29
- Link: http://starlitxiling.github.io/2025/01/02/libiconv/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments