编辑+编译环境 :sublime 3059
使用语言 C (不是C++)
我在网上找了一个 可以在linux上转码的简单例子,拿到我这 想试试 代码如下
#include <stdio.h>
#include <iconv.h>
#include <string.h>
#define BUFLEN 256
char outbuf[BUFLEN];
char inbuf[BUFLEN] = "characters convertion";
int main()
{
char *pin = inbuf;
char *pout = outbuf;
int inlen = strlen(pin);
int outlen = BUFLEN;
int retsize;
iconv_t cd;
cd = iconv_open("UTF-8", "GBK");
if((iconv_t)-1 == cd) {
perror("iconv_open error");
return -1;
}
retsize = iconv(cd, &pin, (size_t *)&inlen, &pout, (size_t *)&outlen);
if((size_t)-1 == retsize) {
perror("iconv error");
return -2;
}
if(outlen > 0) {
printf("%s\n", outbuf);
}
iconv_close(cd);
return 0;
}
=================报错如下
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_main in go-2c8538.o
"_iconv_close", referenced from:
_main in go-2c8538.o
"_iconv_open", referenced from:
_main in go-2c8538.o
ld: symbol(s) not found for architecture x86_64
======================================通过网上搜索,说是缺少libiconv.dylib
那么 我 include <libiconv.dylib>
告知我
fatal error: 'libiconv.dylib' file not found
#include <libiconv.dylib>
^
1 error generated.
[Finished in 0.3s with exit code 1]
========================================== 现在我找的几个libiconv.dylib 全都不在系统文件下,是不是必须在系统文件下才可以呢? 还有 include<libiconv.dylib> 这样是动态加载吗?因为很久不用C 也没有找到相关的方案,麻烦有过相关经验的大牛 给讲解讲解,小弟万分感谢!!!!
1 个解决方案
#1
#pragma comment(lib,"libiconv.dylib")
如果你编译器支持的话。
否则,
在你编译链接环境中找
类似VS20XX
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
或类似gcc/g++
-L库所在目录 -l库
如果你编译器支持的话。
否则,
在你编译链接环境中找
类似VS20XX
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
或类似gcc/g++
-L库所在目录 -l库
#1
#pragma comment(lib,"libiconv.dylib")
如果你编译器支持的话。
否则,
在你编译链接环境中找
类似VS20XX
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
或类似gcc/g++
-L库所在目录 -l库
如果你编译器支持的话。
否则,
在你编译链接环境中找
类似VS20XX
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
或类似gcc/g++
-L库所在目录 -l库