Я использую mingw на 64-битной Windows, пытаюсь скомпилировать программу fortran. При связывании с библиотекой возвращается ошибка:
E:/Users/Malcolm/netcdf-4.1.3-antho/lib\libnetcdf.a: member E:/Users/Malcolm/netcdf-4.1.3-antho/lib\libnetcdf.a(libnetcdf_la-stub.o) in archive is not an object
Когда я использую nm
в файле архива, он говорит, что форматы файлов объектных файлов не распознаются :
e:\mingw-w64\mingw32\bin\nm.exe: libnetcdf_la-stub.o: File format not recognized
... et c для остальных объектных файлов.
Если я использую file
в одном из отдельных объектных файлов после его извлечения из архива с 7zip он возвращает «данные архива ACB».
Ниже приведен раздел компилятора с флагами моего Makefile, если он помогает:
OUTPUTLIB = -LE:/Users/Malcolm/netcdf-4.1.3-antho/lib
OUTPUTOPT = -DNETCDF
LINKOPTS = -lnetcdf -lnetcdff
FC = gfortran
OPTS = -ffree-form -ffree-line-length-none -O3 -finline-functions -fopenmp -fconvert=big-endian
OPTS += -static-libgfortran -static-libgcc
OPTS += -Wl,-Bstatic,--whole-archive -lstdc++ -lpthread -lnetcdf -lnetcdff -lgomp -lquadmath -Wl,--no-whole-archive -Wl,--stack,2147483647, --verbose
CPP = cpp -C -P -traditional -Wno-invalid-pp-token -ffreestanding
Я не использовал mingw до этого проекта, поэтому может быть я что-то упускаю c.