こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

BCCデベロッパーでiconv

c言語でのプログラミングをBCC developer(windowsXP)で行ってるものです。
iconv.hとインクルードしたくて C:\Borland\BCC55\Include ファイルにlibiconv-1.9.1.bin.woe32にあるincludeファイルにあった iconv.h libcharset.h localcharset.h という三つのファイルをコピペした後、次のプログラムをmakeしてみました
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iconv.h>

#define S_SIZE (1024)

int main(void)
{
iconv_t icd;
FILE *fp_src, *fp_dst;
char s_src[S_SIZE], s_dst[S_SIZE];
char *p_src, *p_dst;
size_t n_src, n_dst;

icd = iconv_open("EUC-JP", "UTF-8");
fp_src = fopen("index1.txt", "r");
fp_dst = fopen("index2.txt", "w");

while(fgets(s_src, S_SIZE, fp_src) != NULL){
p_src = s_src;
p_dst = s_dst;
n_src = strlen(s_src);
n_dst = S_SIZE-1;
while(0 < n_src){
iconv(icd, &p_src, &n_src, &p_dst, &n_dst);
}
*p_dst = '\0';
fputs(s_dst, fp_dst);
}

fclose(fp_dst);
fclose(fp_src);
iconv_close(icd);


}

すると次のエラーメッセージが出ました。
Error: Unresolved external '_libiconv_open' referenced from C:\BORLAND\BCC55\BIN\TEST.C\DEBUG\TEST.OBJ
Error: Unresolved external '_libiconv' referenced from C:\BORLAND\BCC55\BIN\TEST.C\DEBUG\TEST.OBJ
Error: Unresolved external '_libiconv_close' referenced from C:\BORLAND\BCC55\BIN\TEST.C\DEBUG\TEST.OBJ

** error 1 ** deleting Debug\test.c.exe

解決策が分かる方、ご指導お願いいたします。

投稿日時 - 2012-05-10 15:56:31

QNo.7468298

すぐに回答ほしいです

質問者が選んだベストアンサー

あ、あと……

>C:\Borland\BCC55\Include ファイルにlibiconv-1.9.1.bin.woe32にあるincludeファイルにあった iconv.h libcharset.h localcharset.h という三つのファイルをコピペ

本来の開発環境のディレクトリにぶちこむのは止めた方がいいです。
追加のインクルードファイルが格納されているパスやライブラリの格納されているパスを指定するオプションが用意されているハズなので、そちらで指定するようにしましょう。

さもないと……
「ソース一式コピーしてきたのにコンパイルできねぇよ? 追加のインクルードディレクトリもライブラリディレクトリも指定されていないハズなのに」
なんてことになります。

投稿日時 - 2012-05-10 17:20:39

お礼

分かりやすく教えていただきありがとうございました。

投稿日時 - 2012-05-10 17:29:43

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Wr5

>解決策が分かる方、ご指導お願いいたします。

インライン関数だけで実装されているのでない限り、リンクする時にライブラリが必要になるハズですが……。
で、ライブラリをリンカに渡していないから、
>Error: Unresolved external '_libiconv_open' referenced from C:\BORLAND\BCC55\BIN\TEST.C\DEBUG\TEST.OBJ
>Error: Unresolved external '_libiconv' referenced from C:\BORLAND\BCC55\BIN\TEST.C\DEBUG\TEST.OBJ
>Error: Unresolved external '_libiconv_close' referenced from C:\BORLAND\BCC55\BIN\TEST.C\DEBUG\TEST.OBJ

「_libiconv_open、_libiconv、_libiconv_closeって関数がないんですけど~?」
とエラーになっています。

配布パッケージにlibディレクトリがあるみたいですから、そちらからライブラリを指定すればよいかと。
# ただし、格納されている.libファイルがBCC developerで使えるライブラリファイルかどうかは不明ですが。

投稿日時 - 2012-05-10 17:17:36

あなたにオススメの質問