ICUライブラリをC言語プログラムで使用できるようにするため、UTF-8文字列を小文字にすることができます。ここでコンパイルエラーを再現する最小限の例です:ICUライブラリでコンパイルできません - 'u_strlen_3_6'への未定義参照
main.cの
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unicode/ustring.h>
int main(int argc, char **argv)
{
UChar test[100] = { 0x41, 0x42, 0x43, 0x20, 0xc6, 0xd8, 0xc5, 0x20, 0xc9, 0x20, 0xc8, 0x20, 0xd1, 0x20, 0xca, 0x20, 0xd6 };
for (int i = 0; i < u_strlen(test); i++){
printf("%d\n", i);
}
}
Makefileの
CC = gcc
CFLAGS = -g -O3 -std=c99
GNUCFLAGS = -g -O3 -std=gnu99 -lm
main: obj/main.o
$(CC) $(CFLAGS) -o bin/main obj/main.o
obj/main.o: src/main.c
$(CC) $(CFLAGS) -c src/main.c -o obj/main.o
コンパイラ出力
gcc -g -O3 -std=c99 -o bin/main obj/main.o
obj/main.o: In function `main':
~/src/main.c:9: undefined reference to `u_strlen_3_6'
collect2: error: ld returned 1 exit status
Makefile:6: recipe for target 'main' failed
make: *** [main] Error 1
http://icu-project.org/apiref/icu4c/にリストされているすべてのヘッダーファイルを運んでみました。 Makefileに同じエラーを追加しようとしました。同じエラーが発生しました。-licudata -licui18n -licuio -liculx -licutest -licutu -licuuc
:
- libicu52
- libicu52-dbgの
- libicu-devの
- ICU-デベロッパーツール
提案がありますか?
インクルードファイルはコンパイルエラーを解決します。 OPにリンクエラーがありました。 – aschepler