2016-05-02 14 views
2

Wie der Titel sagt, suche ich nach einer Möglichkeit, mein PIN-Tool mit einigen Abhängigkeiten kompilieren zu lassen. Also zum Beispiel, wenn ich #include "somefile.h" in meinem PIN-Tool, und generieren einige Objekt-Datei g++ -c somefile.cpp, wie verknüpfe ich meine Objektdatei mit meinem PIN-Tool kompilieren, damit ich die Funktionalität in meinem PIN-Tool verwenden kann?PIN-Tool mit Abhängigkeiten kompilieren

+0

Beachten Sie, dass die Objektdatei mit den gleichen Laufzeiten wie Pin selbst kompiliert werden muss. Ich empfehle, dass Sie sich einige Makefiles von Pin-Kits anschauen, um zu sehen, wie obj-Dateien erzeugt werden, und fügen Sie Ihrem Pintool-Makefile eine ähnliche Zeile hinzu. – nitzanms

Antwort

3

So auf konnte ich eine Dokumentation finden Sie die „makefile.rules“ unter here Webseite des PIN zu ändern. Für meine Situation würden diese 6 Zeilen unten zum Ende von "makefile.rules" hinzugefügt werden.

$(OBJDIR)"somefile"$(OBJ_SUFFIX): "somefile".cpp "somefile".h 
    $(CXX) $(TOOL_CXXFLAGS) $(COMP_OBJ)[email protected] $< 

$(OBJDIR)"PinFile"$(OBJ_SUFFIX): "pin_tool".cpp 
    $(CXX) $(TOOL_CXXFLAGS) $(COMP_OBJ)[email protected] $< 

$(OBJDIR)"pin_tool"$(PINTOOL_SUFFIX): $(OBJDIR)"somefile"$(OBJ_SUFFIX) $(OBJDIR)"PinFile"$(OBJ_SUFFIX) "somefile".h 
    $(LINKER) $(TOOL_LDFLAGS_NOOPT) $(LINK_EXE)[email protected] $(^:%.h=) $(TOOL_LPATHS) $(TOOL_LIBS) 

Das einzige, was von einer Make-Datei zu einem anderen wechseln würde wäre die Worte, die ich in Anführungszeichen gesetzt. Beachten Sie, dass die zitierten Wörter in der tatsächlichen "makefile.rules" keine Anführungszeichen enthalten sollten.

2

Sie benötigen eine neue Regel am Ende Ihres „makefile.rules“:

$(OBJDIR)YourPinToolMainFile$(PINTOOL_SUFFIX): $(OBJDIR)YourPinToolMainFile$(OBJ_SUFFIX) $(OBJDIR)somefile$(OBJ_SUFFIX) 
$(LINKER) $(TOOL_LDFLAGS) $(LINK_EXE)[email protected] $^ $(TOOL_LPATHS) $(TOOL_LIBS) 
Verwandte Themen