2016-03-26 12 views
0

Ich bin neu in Linux OS. Und ich versuche, den Code zu starten, der von http://cbio.mskcc.org/leslielab/software/string_kernels.html Download Und ich kompiliere die ./src Datei, die in der ./profkernel mit einem Makefile ist. Allerdings, wenn ich laufen zu lassen, erhalte ich folgende Fehlermeldung: screenshotUndefinierter Verweis auf Protokoll mit make-Befehl

Und das Make-Datei sieht wie folgt aus

# MITRA MakeFile 


ifeq ($(MODE),debug) 
    #Debug flags 
    COMPFLAGS = -c -g -pg -Wall 
    CC = cc 
    CLIBS = -lm -g -pg 
else 
    ifeq ($(MODE),memwatch) 
    #Memwatch flags 
    COMPFLAGS = -DMEMWATCH -DMW_STDIO -c -g -Wall -pg 
    CC = cc 
    CLIBS = -DMEMWATCH -DMW_STDIO -lm -g -Wall -pg 
else 
    #Efficient Flags 
    COMPFLAGS = -c -O3 
    CC = cc 
    CLIBS = -lm -O3 
endif 
endif 

INCLUDES = HashTable.h mitra.h MiscUtil.h SymbolTable.h SymbolTable.h Globals.h Input.h 



string-kernel : string-kernel.o HashTable.o MiscUtil.o SymbolTable.o Globals.o Input.o memwatch.o 
${CC} ${CLIBS} -o string-kernel string-kernel.o HashTable.o MiscUtil.o SymbolTable.o Globals.o Input.o memwatch.o 

%.o : %.c 
${CC} ${COMPFLAGS} $< -o [email protected] 

TAGS : 
    etags *.c *.h 

clean : 
    rm string-kernel *.o 

Ich bemerke es ähnliche Fragen. Und ich habe versucht, die gleichen Wörter aus diesen Antworten wie

LDFLAGS=-lm or LDLIBS=-lm 

hinzuzufügen, aber es hat nicht funktioniert. Weiß jemand? Vielen Dank

+0

hoffen, dass diese bereits beantwortet wird nur hinzufügen, '' 'CC = gcc CFLAGS = -Wall LDFLAGS = -lm''' dies überprüfen http://stackoverflow.com/questions/13249610/how-to -use-ldflags-in-makefile – Ankanna

+0

Ich habe das versucht, aber es funktioniert nicht. Vielleicht weil unser Code anders ist. Trotzdem danke –

Antwort

0

-l Optionen (die in ${CLIBS} in diesem Makefile sind) sollte nach Objektdateien kommen, die sie verwenden, nicht vorher. Andernfalls wird die Verbindung fehlschlagen, wenn die statischen Bibliotheken verwendet werden oder, wie in diesem Fall, wenn der Linker --as-needed standardmäßig aktiviert ist (z. B. in Ubuntu). So

${CC} -o string-kernel string-kernel.o HashTable.o MiscUtil.o SymbolTable.o Globals.o Input.o memwatch.o ${CLIBS} 
Verwandte Themen