Fehler beim Ausführen meines Makefiles für C-Compiler AIX UNIX
344
Oleg
Unten ist mein Makefile
CC = xlC CFLAGS = $(DEBUG) -O -q64 -qrtti=all \ -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public \ -I$(ORACLE_HOME)/network/public -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/plsql/public \ -I. -I../inc \ -I/usr/include -I/usr/xlc/include \ -I/usr/vacpp/include \ -I/usr/vacpp/iocsrc/core/base \ -I/usr/vacpp/iocsrc/core/utils \ -I /usr/vacpp/iocsrc/core/streams IBM_LIBPATH=-L/usr/vacpp/lib IBM_LIBS= -liocns -liconv ORACLE_LIBPATH=-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib ORACLE_LIBS=-lclntsh -lld -lm MQ_LIBPATH=-L$(MQM_HOME)/lib64 MQLIB = $(MQ_LIBPATH) -lmqm -lmqmcs -lmqmzse LIBS = $(IBM_LIBS) $(MQLIB) $(ORACLE_LIBS) -lpthreads LIBS = $(MQLIB) $(ORACLE_LIBS) -lpthreads LDFLAGS = -q64 $(IBM_LIBPATH) $(MQ_LIBPATH) $(ORACLE_LIBPATH) SOURCE=../src EXE = $(SOURCE)/fin2ici MAIN = $(SOURCE)/fin2ici.c OBJS = $(SOURCE)/fin2ici.o $(SOURCE)/dte_mq.o .SUFFIXES: .c .o # Compilation rules .C.o: $(CC) $(CFLAGS) -c -o ${<:.c=.o} $< .c.o: $(CC) $(CFLAGS) -c -o ${<:.c=.o} $< all: $(EXE) @(EXE) @if [ -z "$(DEBUG)" ];\ then \ echo "Copying files to bin direectory"; \ cp $(EXE) ../bin; \ rm -f $(OBJS); \ rm -f $; \ fi; @echo "Done" $(EXE): $(OBJS) $ $(CC) $(LDFLAGS) -o $(EXE) $(OBJS) $ $(LIBS) clean: \rm -f $(OBJS) \rm -f $ \rm -f $(EXE) # DO NOT DELETE THIS LINE -- make depend depends on it. #$(SOURCE)/iciio.o: ../inc/parser.h ../inc/tblDef.h ../inc/iciio.h #$(SOURCE)/tblDef.o: ../inc/parser.h ../inc/tblDef.h #$(SOURCE)/icidata.o: ../inc/parser.h ../inc/tblDef.h ../inc/iciio.h
Wenn ich es laufen lasse, bekomme ich immer den gleichen Fehler
make -f ./makefile.fin2ici_bak xlC -q64 -L / usr / vacpp / lib -L / usr / mqm / lib64 -L / data / oracle / product / 11.2.0.4.7 / lib -L / data / oracle / product / 11.2.0.4.7 / rdbms / lib -o ../src/fin2ici ../src/fin2ici.o ../src/dte_mq.o ../src/fin2ici.o -L / usr / mqm / lib64 -lmqm -lmqmcs -lmqmzse -lclntsh -lld -lm -lpthreads
ld: 0711-738 FEHLER: Eingabedatei ../src/fin2ici.o:
XCOFF32-Objektdateien sind im 64-Bit-Modus nicht zulässig.
make: Der Fehlercode des letzten Befehls lautet 8.
Stop.
Irgendeine Idee, wo der Fehler ist?
Wir könnten mit diesen zwei Zeilen beginnen: `LIBS = $ (IBM_LIBS) $ (MQLIB) $ (ORACLE_LIBS) -lpthreads LIBS = $ (MQLIB) $ (ORACLE_LIBS) -lpthreads` welche möchten Sie tatsächlich verwenden? Kommentieren Sie die Zeile aus, die Sie NICHT verwenden möchten.
user3629249 vor 6 Jahren
0
Verwenden Sie beim Definieren eines Makros Folgendes: `: =` anstelle von `=`, damit das Makro nicht jedes Mal neu ausgewertet wird, wenn es referenziert wird.
user3629249 vor 6 Jahren
0
in Bezug auf Zeilen wie: `all: $ (EXE)` und `clean:` Diese Zeilen erzeugen keine Datei mit demselben Namen, daher sollten sie vorangestellt werden: `.PHONY: all clean`
user3629249 vor 6 Jahren
0
Es scheint eine Definition des Makros "ORACLE_HOME" zu fehlen
user3629249 vor 6 Jahren
0
Es scheint eine Definition des Makros zu fehlen: `MQM_HOME`
user3629249 vor 6 Jahren
0
In dieser Zeile: `fi;` fehlt die führende Zeile Charakter
user3629249 vor 6 Jahren
0
In Bezug auf diese zwei Zeilen: `all: $ (EXE) @ (EXE)` Wenn Sie nur das Makro `EXE` als Abhängigkeit haben, wird das Rezept` EXE` ausgeführt. Das Makefile versucht also, das Rezept zweimal auszuführen.
user3629249 vor 6 Jahren
0
Im Gegensatz zum Compiler wertet der Linker seine 'Parameter von links nach rechts aus. Daher sollte das Makro `$ (LDFLAGS) der letzte Parameter sein, nicht der erste, da der Linker nicht nach aufgelösten Symbolen (aus Bibliotheken) sucht. bis nach der Bearbeitung aller Objektdateien
user3629249 vor 6 Jahren
0
Soweit ich das beurteilen kann, dient die Option: `qRTTI = all` nur zum Generieren von Laufzeitinformationen für Ausnahmen beim Kompilieren von C ++ - Dateien, die keine der Kompilieranweisungen zu verwenden scheinen. Schlagen Sie vor, diesen Parameter zu entfernen
user3629249 vor 6 Jahren
0
Diese Aussage: `.SUFFIXES: .c .o` wird selten, wenn überhaupt, benötigt. Schlagen Sie vor, diese Aussage zu entfernen.
user3629249 vor 6 Jahren
0
Verwenden Sie ein ähnliches Rezept für: `Um optimierte .o-Dateien aus .c-Dateien zu erstellen, geben Sie Folgendes ein: .co: c89 -c -o $ *. c oder: .co: c89 -c -o $ <` wie in [IBM Compiler] (https://www.ibm.com/support/knowledgecenter/de/ssw_aix_61/com.ibm.aix.cmds3/make.htm)
user3629249 vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
3
Syntaxhervorhebung in Microsoft Office Word
-
3
Wie spielt man eine PCM-Datei auf einem UNIX-System ab?
-
2
MSMQ kann nicht installiert werden
-
2
Installation von Bibliotheken und Header-Dateien unter Ubuntu Linux für C / C ++ - Entwicklung
-
2
Wie man MP3's mit LAME mischt
-
1
Stimmen verschwinden, wenn Sie Kopfhörer verwenden
-
3
Wie führt man die EXE-Datei aus, wenn das Linux-System startet?
-
6
Gibt es eine kleine Linux-Distribution, die mit einer vollständigen C-Entwicklungsumgebung geliefert...
-
1
Programmparameter für Anjuta
-
5
Was macht diese Befehlszeile?