2013-08-26 4 views
4

, когда я запускаю сделать файл я получаю эту ошибкуфайл не распознается: Формат файла не распознается

«объект/viojournal.o: файл не распознается: Формат файла не распознается collect2: л.д. возвращается 1 выход статус»

и файл дела следующий

как устранить эту проблему. Я использую gcc-компилятор на centos 5.4 linx 64bit machine.

all: libvioft.so fdump syncer 

CPPFLAGS = -I/usr/include/libxml2 -I../clogger -I../marshall -I../ddp \ 
    -I../http -I../xml -I../nfsop -I../include/common -I../restful \ 
    -I../include/oneGrid 

CFLAGS = -g3 -Wall -Wextra -fPIC -DREPLICATION_ENABLED -DJOURNALING_ENABLED 

#CFLAGS = -g3 -Wall -Wextra -fPIC 

LDFLAGS = -Wl,-rpath=\$$ORIGIN -Wl,-rpath=\$$ORIGIN/../clogger \ 
    -Wl,-rpath=\$$ORIGIN/../marshall -Wl,-rpath=\$$ORIGIN/../ddp \ 
    -Wl,-rpath=\$$ORIGIN/../http -Wl,-rpath=\$$ORIGIN/../xml \ 
    -Wl,-rpath=\$$ORIGIN/../restful 

LIBS = -lpthread -lssl -lxml2 -lbz2 -L../clogger -lclogger \ 
    -L../marshall -lmarshall -L../ddp -lddp -L../nfsop -lnfsop 

libsources = filefs.c viojournal.c recvReplicaUpdate.c syncer.c hostops.c filetable.c updateRemoteFT.c checkpoint.c 
#libsources = filefs.c viojournal.c hostops.c filetable.c checkpoint.c container.c locks.c 

libobjects = $(libsources:%.c=obj/%.o) 

fttestsources = fttest2.c 
fttestobjects = $(fttestsources:%.c=obj/%.o) 

syncersources = syncer.c 
syncerobjects = $(syncersources:%.c=obj/%.o) 

#dmpsources = viodump.c hostops.c 
#dmpobjects = $(dmpsources:%.c=obj/%.o) 

libvioft.so: $(libobjects) 
    $(CC) $(CFLAGS) -shared -o libvioft.so $(libobjects) 

fdump: $(fttestobjects) libvioft.so 
    $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o fdump $(fttestobjects) 

syncer: $(syncerobjects) libvioft.so 
    $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o syncer $(syncerobjects) 

viodump: $(dmpobjects) 
    $(CC) $(CFLAGS) $(LDFLAGS) -lpthread -o viodump $(dmpobjects) 

clean: 
    rm -rf fttest viodump atar syncer libvioft.so obj 

install: 
    cp -f libvioft.so ../package/lib  
# cp -f syncer ../package/bin 

obj/%.d: %.c 
    $(SHELL) -ec 'mkdir -p obj && $(CC) -MM $(CPPFLAGS) $(CFLAGS) -MT $(@:.d=.o) -MT [email protected] $< > [email protected]' 

obj/%.o: %.c 
    $(CC) -c $(CPPFLAGS) $(CFLAGS) -o [email protected] $< 

include $(libsources:%.c=obj/%.d) 
include $(tstsources:%.c=obj/%.d) 
include $(atrsources:%.c=obj/%.d) 
#include $(dmpsources:%.c=obj/%.d) 
+2

Вы попробовали 'make clean' в первую очередь? – devnull

ответ

8

Похоже, что объектный файл поврежден каким-то образом. Попробуйте удалить его, чтобы заставить его перестроить или, как предлагает @devnull, сделать make clean.

+0

спасибо за предложение u есть ли проблема с файлом make ... ?? – harish013

+0

@ harish013 Я не говорю 'Makefile', извините. Я использую такие вещи, как CMake, чтобы «облегчить мою жизнь» ;-) ' – rubenvb

Смежные вопросы