我在Ubuntu 20.04 LTS上使用make
构建gdal版本2.4.4,偶然发现一个错误,说Argument list too long
(可能是由于我构建目录的路径很长) ),尝试通过将参数分成以反斜杠分隔的段来解决此问题,但不幸的是它没有解决问题。然后我看到将参数保存到文件并从中读取是一个常见的解决方法。所以现在处理它的代码部分看起来像这样:
SORTED := $(sort $(wildcard $(GDAL_OBJ:.o=.lo)))
$(LIBGDAL): $(GDAL_OBJ:.o=.lo)
$(file >$@.in,$(SORTED))
$(LD) $(LDFLAGS) $(LIBS) -o $@ \
@$@.in \
-rpath $(INST_LIB) \
-no-undefined \
-version-info $(LIBGDAL_CURRENT):$(LIBGDAL_REVISION):$(LIBGDAL_AGE)
@rm $@.in
ifeq ($(MACOSX_FRAMEWORK),yes)
install_name_tool -id ${OSX_VERSION_FRAMEWORK_PREFIX}/GDAL .libs/libgdal.dylib
endif
但是现在我得到了:
./ogr/gml2ogrgeometry.lo: file not recognized: file format not recognized
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:80: libgdal.la] Error 1
./ogr/gml2ogrgeometry.lo
是文件中的第一项。
尝试make clean
并重建,但错误仍然发生。