cygwin编译gdal是遇到。
执行如下命令时提示。
D:/android-ndk-r19c/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android28-clang conftest.c -lstdc++ -liconv -lgnustl_shared
conftest.c
/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。它的作用是在多种国际编码格式之间进行文本内码的转换。
stdc++的头文件和库文件分别存放在:
D:\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include
D:\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\aarch64-linux-android\28
问题原因:发现iconv已经在ndk r16b 中裁剪掉了,所以如果我们需要使用iconv,那么就需要自己重新打包放上去。
解决办法:在congfigure时,去掉LIBS即可(该变量包含了-liconv -lgnustl_shared)。