GCC ICU 57 静态链接

GCC ICU 57 static linking

我正在尝试 link ICU 57 到我的二进制文件。即使认为(我认为至少)我正在 linking 静态库文件,那也行不通。 这是一个直截了当的例子:

gcc -static /usr/lib/libicui18n.a /usr/lib/libicuuc.a /usr/lib/libicudata.a /usr/lib/libicule.a /usr/lib/libiculx.a /usr/lib/libicutu.a /usr/lib/libicuuc.a /usr/lib/libicuio.a obj/ex.o obj/msg.o -o bin/ex

这是我收到的错误消息:

src/msg.c:5: undefined reference to `u_fopen_57'
src/msg.c:9: undefined reference to `u_fgetfile_57'
src/msg.c:10: undefined reference to `u_fgetfile_57'
src/msg.c:11: undefined reference to `u_frewind_57'
src/msg.c:18: undefined reference to `u_fgetc_57'
src/msg.c:17: undefined reference to `u_feof_57'
src/msg.c:25: undefined reference to `u_fclose_57'

虽然链接动态库工作正常。

如果可以的话,我建议使用 pkg-config,因为我推荐 here

特别是 pkg-config --static … 的解释 here