4

正如标题所述,我正在寻找一种方法来编译我的 PIN 工具并附带一些依赖项。因此,例如,如果我#include "somefile.h"在我的 PIN 工具中生成一些目标文件g++ -c somefile.cpp,我如何链接我的目标文件以使用我的 PIN 工具进行编译,以便我可以在我的 PIN 工具中使用它的功能?

4

2 回答 2

6

因此,我能够在此处的 PIN 网站下找到一些有关更改“makefile.rules”的文档。对于我的情况,下面这 6 行将被添加到“makefile.rules”的末尾。

$(OBJDIR)"somefile"$(OBJ_SUFFIX): "somefile".cpp "somefile".h
    $(CXX) $(TOOL_CXXFLAGS) $(COMP_OBJ)$@ $<

$(OBJDIR)"PinFile"$(OBJ_SUFFIX): "pin_tool".cpp
    $(CXX) $(TOOL_CXXFLAGS) $(COMP_OBJ)$@ $<

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

唯一会从一个 make 文件更改为另一个文件的就是我放在引号中的单词。请注意,引用的单词在实际的“makefile.rules”中不应有引号

于 2016-05-03T21:43:36.613 回答
2

您需要在“makefile.rules”末尾添加一条新规则:

$(OBJDIR)YourPinToolMainFile$(PINTOOL_SUFFIX): $(OBJDIR)YourPinToolMainFile$(OBJ_SUFFIX) $(OBJDIR)somefile$(OBJ_SUFFIX)
$(LINKER) $(TOOL_LDFLAGS) $(LINK_EXE)$@ $^ $(TOOL_LPATHS) $(TOOL_LIBS)
于 2016-05-03T08:19:50.977 回答