Я занимаюсь перекомпиляцией нескольких библиотек на MA C. У меня есть файлы сборки, которые работают в системе UNIX
Я не могу преобразовать этот
# makefile for util - shared object version
FC=gfortran
ifeq ($(flavor PLATFORM),undefined)
PLATFORM=$(shell uname -i)
endif
ifeq ("$(PLATFORM)","x86_64")
FFLAGS= $(DBG) $(FFLAGS_BIT) $(FFLAGS_MCMODEL) $(FFLAGS_ARRAYS) $(FFLAGS_CPU)
LIBDIR=../lib64
LINK_LIB=
else
FFLAGS=
LIBDIR=../lib
LINK_LIB=
endif
FFLAGS+= -I ../include -Iinclude
FILE=eproc.so
SRC= \
fort/derive.f \
fort/ingeom.f \
fort/support.f \
fort/tools.f \
fort/unpackadas.f \
fort/utilfile.f \
fort/utility.f \
fort/utiltran.f
OBJ=$(SRC:.f=.o)
.PHONY: all clean realclean
default: all
all: $(LIBDIR)/$(FILE)
$(LIBDIR)/$(FILE): $(LIBDIR) $(OBJ)
ld -shared -o $(LIBDIR)/$(FILE) $(OBJ) $(ADAS_LIB) $(LINK_LIB)
.f.o:
${FC} ${FFLAGS} -c $*.f -o $*.o
$(LIBDIR):
mkdir -p $(LIBDIR)
clean:
rm -f $(OBJ)
realclean:
rm -f $(OBJ) $(LIBDIR)/$(FILE)
, в частности, часть
$(LIBDIR)/$(FILE): $(LIBDIR) $(OBJ)
ld -shared -o $(LIBDIR)/$(FILE) $(OBJ) $(ADAS_LIB) $(LINK_LIB)
Я пытался изменить на
$(LIBDIR)/$(FILE): $(LIBDIR) $(OBJ)
gfortan -shared -o $(LIBDIR)/$(FILE) $(OBJ) $(ADAS_LIB) $(LINK_LIB
, но выдает ошибку
Неопределенные символы для архитектуры x86_64: « adasittsr », ссылка на которую имеется: unpackadas в unpackadas. o " readas_11 ", ссылка на которую: unpackadas в unpackadas.o " readas_11bun ", ссылка на: unpackadas в unpackadas.o ld : символ (ы) не найден для архитектуры x86_64 collect2: error: ld возвратил 1 статус выхода make: *** [../lib/eproc.so] Ошибка 1