我正在使用 android ndk 和 g++ 从 GDAL 编译 frmts/gtiff/libtiff/tif_dirinfo.c 文件。tiffFieldArray 一开始就被定义为静态变量。
static TIFFFieldArray tiffFieldArray;
然后我在同一个文件中使用它:
tiffFieldArray = { tfiatImage, 0, TIFFArrayCount(tiffFields), tiffFields };
但出现错误:
../../frmts/gtiff/libtiff/tif_dirinfo.c:264:1: error: 'tiffFieldArray' does not name a type
为什么?
在 tif_dir.h 中,结构定义:
#if defined(__cplusplus)
extern "C" {
#endif
...
struct _TIFFFieldArray {
TIFFFieldArrayType type; /* array type, will be used to determine if IFD is image and such */
uint32 allocated_size; /* 0 if array is constant, other if modified by future definition extension support */
uint32 count; /* number of elements in fields array */
TIFFField* fields; /* actual field info */
};
...
#if defined(__cplusplus)
}
#endif