2012-04-15 10 views
0

Beschreiben, wie "getoptpp" als schattierte Bibliothek von meinem eigenen GNU-Makefile kompilieren und statische Link zu meinem Programm?GNU MAKE - create getoptpp Bibliothek aus meinem eigenen Makefile oder schlagen Befehlszeilenoptionen Bibliothek für C++

Was ich mache:

In meinem Programmverzeichnis unarchivierten ich getoptpp Bibliothek mit dem gleichen Namen in dem Unterverzeichnis. als neues Ziel meiner Makefile hinzugefügt: (README, ich sage Gemeinsam-Flag verwendet, um $> make n shared =.)

getoptpp: 
    cd getoptpp; $(MAKE) SHARED=n 

als ich dieses Ziel Liste der angeforderten Ziele meines Programms hinzugefügt:

myprogram: getoptpp 
    g++ **** myprogram 

aber nach dem Aufruf make myprogram - keine neue .so überhaupt erstellt. wenn "machen getoptpp" calling - machen sagen 'up to date'

* ZUSÄTZLICH: nach Vorschlag von .PHONY ein Fehler *

cd getoptpp; make SHARED=n 
"Makefile", line 15: Missing dependency operator 
"Makefile", line 19: Need an operator 
"Makefile", line 24: Need an operator 
"Makefile", line 45: Missing dependency operator 
"Makefile", line 47: Need an operator 
make: fatal errors encountered -- cannot continue 
*** Error code 1 

http://code.google.com/p/getoptpp/

OR

ist

Bitte, schlagen Sie ziemlich schöne Kommandozeilen-Parsing-Bibliothek für meine C++ - Programm. Das kann ich einfach als .o-Objekt kompilieren, das zu meinem Programm verlinkt. Kein Boost!

Antwort

1

Das Verzeichnis existiert und wird nicht aktualisiert, also ja, es ist auf dem neuesten Stand. Vielleicht möchten Sie declare it as a dependency of .PHONY.

+0

danke, jetzt ist ein Fehler aufgetreten. Party Makefile ist von der Box. – abrahab

+1

Auf welcher Art von System ist das? Es sieht so aus als wäre dein 'make' nicht GNU' make'; Möglicherweise müssen Sie 'gmake' aufrufen, insbesondere auf einem * BSD-Host. – geekosaur

+0

Ja, jetzt bin ich bei freebsd. Danke, aber ... dass mein Makefile nicht für andere * Unix-Systeme portierbar ist, wenn ich gmake bei dieser Art von Kompilierung dieser Lib benutzen werde? :(nicht geeignet (( – abrahab

Verwandte Themen