So fügen Sie eine statische Bibliothek in ein Makefile ein

Lesezeit: 1 Minute

Ich habe folgendes Makefile

CXXFILES = pthreads.cpp 

CXXFLAGS = -O3 -o prog -rdynamic -D_GNU_SOURCE -L./libmine
LIBS = -lpthread -ldl

all:
    $(CXX) $(CXXFILES) $(LIBS) $(CXXFLAGS)

clean:
    rm -f prog *.o

Ich versuche, die einzubeziehen ./libmine Bibliothek darin CXXFLAGS, aber es scheint, als wäre es nicht der richtige Weg, eine statische Bibliothek einzubinden, denn wenn ich das Programm kompiliere, erhalte ich viele undefinierte Referenzfehler. Was ist also eigentlich der richtige Weg, um eine statische Bibliothek in das Makefile aufzunehmen?

  • OP hinzugefügt -L./libmine in gcc Kompilierungs- und Verknüpfungszeile, aber nicht hinzugefügt libmine.a. -L./libmine erzählt gcc prüfen ./libmine Verzeichnis, um nach den Objektdateien und Bibliotheken zu suchen. Hinzufügen libmine.a erzählt gcc mit der Sie Ihre ausführbare Datei verknüpfen möchten libmine.a Bibliothek.

    – au

    26. Oktober 2016 um 13:07 Uhr

  • Zur Verdeutlichung: LIBS = libmine.a funktioniert nicht mit -L./libmine. Es scheint, dass ein absoluter Pfad notwendig ist. Verwenden Sie LIBS = -lmine, es wird entweder nach libmine.a oder libmine.so gesucht (getestet mit gcc 5.4.0)

    – fchen

    8. Oktober 2017 um 19:30 Uhr

1394060cookie-checkSo fügen Sie eine statische Bibliothek in ein Makefile ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy