Salut à tous,
J'ai un gros problème. J'essaye d'installer un encodeur vidéo 264 (JM 15.1, à partir de
H.264/AVC JM Téléchargement du logiciel de référence) Sur OS X 10.5.5.
Tout d'abord, j'ai dû désactiver compilation statique, en raison de cette erreur:
Code:
ld_classic: can't locate file for: -lcrt0.o
J'ai lu à ce sujet sur certains forums et les personnes handicapées dans Makefile compilation statique, et il a été résolu. Maintenant, je reçois ce message d'erreur:
Code:
creating binary "../bin/lencod.exe"
ld: absolute addressing (perhaps -mdynamic-no-pic) used in _rc_init_GOP from obj/rc_quadratic.o not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocs
collect2: ld returned 1 exit status
et voici le Makefile:
Code:
NAME= lencod
### include debug information: 1=yes, 0=no
DBG?= 0
### Generate 32 bit executable : 1=yes, 0=no
M32?= 0
### include O level optimization : 0-3
OPT?= 3
### Static Compilation
STC?= 0
DEPEND= dependencies
BINDIR= ../bin
INCDIR= inc
SRCDIR= src
OBJDIR= obj
ADDSRCDIR= ../lcommon/src
ADDINCDIR= ../lcommon/inc
ifeq ($(M32),1)
CC= gcc -m32
else
CC= gcc
endif
ifeq ($(STC),1)
ifeq ($(DBG),1) ### Do not use static compilation for Debug mode
STC=0
STATIC=
else
STATIC= -static
endif
else
STATIC=
endif
LIBS= -lm $(STATIC)
AFLAGS=
CFLAGS= -std=gnu99 -pedantic -ffloat-store -fno-strict-aliasing -fsigned-char $(STATIC)
FLAGS= $(CFLAGS) -Wall -I$(INCDIR) -I$(ADDINCDIR) -D __USE_LARGEFILE64 -D _FILE_OFFSET_BITS=64
OPT_FLAG = -O$(OPT)
ifeq ($(DBG),1)
SUFFIX= .dbg
FLAGS+= -g
else
SUFFIX=
FLAGS+= $(OPT_FLAG)
endif
OBJSUF= .o$(SUFFIX)
SRC= $(wildcard $(SRCDIR)/*.c)
ADDSRC= $(wildcard $(ADDSRCDIR)/*.c)
OBJ= $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o$(SUFFIX)) $(ADDSRC:$(ADDSRCDIR)/%.c=$(OBJDIR)/%.o$(SUFFIX))
BIN= $(BINDIR)/$(NAME)$(SUFFIX).exe
.PHONY: default distclean clean tags depend
default: messages objdir_mk depend bin
messages:
ifeq ($(M32),1)
@echo 'Compiling with M32 support...'
endif
ifeq ($(DBG),1)
@echo 'Compiling with Debug support...'
@echo 'Note static compilation not supported in this mode.'
endif
ifeq ($(STC),1)
@echo 'Compiling with -static support...'
endif
ifeq ($(MMX),1)
@echo 'Compiling with MMX support...'
endif
clean:
@echo remove all objects
@rm -rf $(OBJDIR)
distclean: clean
@rm -f $(DEPEND) tags
@rm -f $(BIN)
tags:
@echo update tag table
@ctags inc/*.h src/*.c
bin: $(OBJ)
@echo
@echo 'creating binary "$(BIN)"'
@$(CC) $(AFLAGS) -o $(BIN) $(OBJ) $(LIBS)
@echo '... done'
@echo
depend:
@echo
@echo 'checking dependencies'
@$(SHELL) -ec '$(CC) $(AFLAGS) -MM $(CFLAGS) -I$(INCDIR) -I$(ADDINCDIR) $(SRC) $(ADDSRC) \
| sed '\''s@\(.*\)\.o[ :]@$(OBJDIR)/\1.o$(SUFFIX):@g'\'' \
>$(DEPEND)'
@echo
$(OBJDIR)/%.o$(SUFFIX): $(SRCDIR)/%.c
@echo 'compiling object file "$@" ...'
@$(CC) -c -o $@ $(FLAGS) $<
$(OBJDIR)/%.o$(SUFFIX): $(ADDSRCDIR)/%.c
@echo 'compiling object file "$@" ...'
@$(CC) -c -o $@ $(FLAGS) $<
objdir_mk:
@echo 'Creating $(OBJDIR) ...'
@mkdir -p $(OBJDIR)
-include $(DEPEND)
1. J'ai trouvé recherchées pour cette erreur et il semble que d'autres personnes résolus par la mise à niveau de Xcode 3.1.2. Mais mon Xcode version 3.1.2! J'ai réinstallé plusieurs fois et toujours la même erreur. Peut-être que c'est parce que je l'ai installé sur ce MacPorts il ya quelques semaines, et il désinstallé? Peut-être que je ne suis pas censé installer le "paquet de développement Unix» dans le Xcode?
2. J'ai essayé d'ajouter le LDFLAG dans le Makefile, avec
-read_only_relocs supprimer et je ne suis pas sûr que je suis mise à la bonne place, et je ne sais pas si cela est encore censée travailler. De toute façon quand je l'ajouter, il diesn't travail.
Quelqu'un at-il des idées? Si non, quelqu'un peut-il essayer JM construction de ce lien et voir si ils obtiendront le même problème? Je suis d'idées.
Many thanks.