Linux下使用iconv库出错,急!!!

时间:2022-05-05 02:17:36
我做的工程需要应用iconv进行编码转换,使用了iconv.h,工程在windows下可以运行,但移植到Linux下后在生成Makefile时进行到make命令后报错为:

../include/iconv.h:35: error: 'dllimport' was not declared in this scope
../include/iconv.h:35: error: expected ',' or ';' before 'int'
../include/iconv.h:82: error: redefinition of 'int __declspec'
../include/iconv.h:35: error: 'int __declspec' previously defined here
../include/iconv.h:82: error: 'dllimport' was not declared in this scope
../include/iconv.h:92: error: redefinition of 'int __declspec'
../include/iconv.h:35: error: 'int __declspec' previously defined here
../include/iconv.h:92: error: 'dllimport' was not declared in this scope
../include/iconv.h:98: error: redefinition of 'int __declspec'
../include/iconv.h:35: error: 'int __declspec' previously defined here
../include/iconv.h:98: error: 'dllimport' was not declared in this scope
../include/iconv.h:107: error: redefinition of 'int __declspec'
../include/iconv.h:35: error: 'int __declspec' previously defined here
../include/iconv.h:107: error: 'dllimport' was not declared in this scope
../include/iconv.h:118: error: redefinition of 'int __declspec'
../include/iconv.h:35: error: 'int __declspec' previously defined here
../include/iconv.h:118: error: 'dllimport' was not declared in this scope
../include/iconv.h:130: error: redefinition of 'int __declspec'
../include/iconv.h:35: error: 'int __declspec' previously defined here
../include/iconv.h:130: error: 'dllimport' was not declared in this scope
make[1]: *** [global.o] Error 1
make[1]: Leaving directory `/home/oracle/chaiyc/hddygs/SiteNameDis/src'
make: *** [all-recursive] Error 1

在Makefile.am中已经加载了iconv库,请问这是什么原因,高手帮忙解决一下,急着用

5 个解决方案

#1


你用的是 Windows 下的 iconv.h 吧?
换成 Linux 本地的 iconv。

#2


能否详细说一下怎样调用Linux本地的iconv库,我的调用可能错了,我在Makefile.am中写的是:LIBS=-liconv

#3


应该是预定义的问题,是不是在引用iconv之前有WIN32这类的define?

#4


没有,你的意思是不是说应该在应用iconv.h前加上define?

#5


问题解决了,在移入Linux时把附加的iconv.h去掉就行了,谢谢二位帮忙

#1


你用的是 Windows 下的 iconv.h 吧?
换成 Linux 本地的 iconv。

#2


能否详细说一下怎样调用Linux本地的iconv库,我的调用可能错了,我在Makefile.am中写的是:LIBS=-liconv

#3


应该是预定义的问题,是不是在引用iconv之前有WIN32这类的define?

#4


没有,你的意思是不是说应该在应用iconv.h前加上define?

#5


问题解决了,在移入Linux时把附加的iconv.h去掉就行了,谢谢二位帮忙