Compilation libpng版本1.5.14缺少endif

Compilation libpng版本1.5.14缺少endif,compilation,libpng,cray,Compilation,Libpng,Cray,我曾尝试在Cray x86_64系统上使用CC 5.10编译libpng 1.5.14,但经常遇到缺少endif的错误。我通过在文件末尾添加一个#endif来修复其中的许多错误,允许“make check”继续通过第一系列的3个测试。然而,在dfn.c中有一个endif错误我无法修复。我试图通过将dfn.c复制到hack#dfn.c,在hack#dfn.c的末尾添加一个#endif语句,然后在编译过程中重新创建dfn.c之后,让Makefile将hack#dfn.c复制到dfn.c来解决这个问题

我曾尝试在Cray x86_64系统上使用CC 5.10编译libpng 1.5.14,但经常遇到缺少endif的错误。我通过在文件末尾添加一个#endif来修复其中的许多错误,允许“make check”继续通过第一系列的3个测试。然而,在dfn.c中有一个endif错误我无法修复。我试图通过将dfn.c复制到hack#dfn.c,在hack#dfn.c的末尾添加一个#endif语句,然后在编译过程中重新创建dfn.c之后,让Makefile将hack#dfn.c复制到dfn.c来解决这个问题,但没有成功。下面是没有对dfn.c文件进行任何修复的输出的最后一位,包括我收到的错误:

Running tests.  For details see pngtest-log.txt
Running test-pngtest.sh
  PASS: pngtest --strict pngtest.png
PASS: test-pngtest.sh
Running test-pngvalid-simple.sh
  PASS: pngvalid --standard
  PASS: pngvalid --standard --progressive-read
  PASS: pngvalid --standard --interlace
  PASS: pngvalid --standard --progressive-read --interlace
  PASS: pngvalid --size
  PASS: pngvalid --size --progressive-read
  PASS: pngvalid --transform
PASS: test-pngvalid-simple.sh
Running test-pngvalid-full.sh
  PASS: pngvalid --gamma-threshold
  PASS: pngvalid --gamma-transform
  PASS: pngvalid --gamma-sbit
  PASS: pngvalid --gamma-16-to-8
  PASS: pngvalid --gamma-background
  PASS: pngvalid --gamma-alpha-mode
  PASS: pngvalid --gamma-transform --expand16
  PASS: pngvalid --gamma-background --expand16
  PASS: pngvalid --gamma-alpha-mode --expand16
PASS: test-pngvalid-full.sh
==================
All 3 tests passed
==================
make[1]: Leaving directory `/usr/local/libpng-1.5.14'
rm -f scripts/symbols.out dfn.c dfn?.out
test -d scripts || mkdir scripts
echo '#include "scripts/symbols.dfn"' >dfn.c
cc -E -DHAVE_CONFIG_H -I.  -DPNG_CONFIGURE_LIBPNG\
             -DPNGLIB_LIBNAME='PNG15_0' -DPNGLIB_VERSION='1.5.14' -DSYMBOL_PREFIX='' -DPNG_NO_USE_READ_MACROS -DPNG_BUILDING_SYMBOL_TABLE dfn.c > dfn1.out
PGC-S-0218-Missing #endif (dfn.c: 2)
PGC/x86-64 Linux 12.4-0: compilation completed with severe errors
make: *** [scripts/symbols.out] Error 2

如果[n]def语句检查每个语句是否已关闭,我没有时间查看3282。我希望这里比我更了解libpng的人至少能帮助我找到我可以开始寻找的地方。奇怪的是,我能够在另一个使用gcc的系统上编译相同版本的libpng而没有问题。我希望避免在这个系统上使用gcc。

可能您的C预处理器被#endif语句上的注释搞糊涂了,例如

  #endif /* PNG_READ_SUPPORTED */

可能您的C预处理器对#endif语句上的注释感到困惑,例如

  #endif /* PNG_READ_SUPPORTED */