对#include <iconv.h>、`libiconv_open'、`libiconv'、`libiconv_close' 的未定义引用

Posted

技术标签:

【中文标题】对#include <iconv.h>、`libiconv_open\'、`libiconv\'、`libiconv_close\' 的未定义引用【英文标题】:undefined reference to #include <iconv.h>,`libiconv_open',`libiconv',`libiconv_close'对#include <iconv.h>、`libiconv_open'、`libiconv'、`libiconv_close' 的未定义引用 【发布时间】:2010-11-28 10:20:37 【问题描述】:

在我的 C 应用程序中添加引用时遇到问题。我无法在我的数据压缩器项目中添加对“libiconv”的链接器引用。我已经下载了“libiconv”库,但在添加显示编译错误的引用时感到困惑。我正在使用 Dev C++ 开发我的压缩应用程序。

这里是编译日志:

构建 Makefile:“C:\Dev-Cpp\Examples\eottest\Makefile.win”

Executing  make...

make.exe -f "C:\Dev-Cpp\Examples\eottest\Makefile.win" all

gcc.exe eot.o libeot.o properties.o  -o "Project1.exe" -L"C:/Dev-Cpp/lib" 


libeot.o(.text+0x19):libeot.c: undefined reference to `libiconv_open'
libeot.o(.text+0x36):libeot.c: undefined reference to `libiconv_close'
libeot.o(.text+0x67):libeot.c: undefined reference to `libiconv'

collect2: ld returned 1 exit status`

【问题讨论】:

【参考方案1】:

您只是指定了一个额外的库路径,而不是要链接到的实际库。试试:

gcc.exe eot.o libeot.o properties.o  -o "Project1.exe" -L"C:/Dev-Cpp/lib" -liconv

【讨论】:

我已经从ftp.gnu.org/gnu/libiconv/libiconv-1.13.1.tar.gz 下载了'libiconv'库......解压zip文件后我不知道如何使用这个库。“libiconv”文件夹包含很多子文件夹。我很困惑我应该引用哪个库。

以上是关于对#include <iconv.h>、`libiconv_open'、`libiconv'、`libiconv_close' 的未定义引用的主要内容,如果未能解决你的问题,请参考以下文章

转换特殊字符(UTF-8)

C获取本地时间的localtime函数

Linux(程序设计):27---iconv库(转换字符编码)

libiconv gbk utf-8 转 unicode

gbk与utf-8转换

Termux03-安装lxml