使用依赖项编译PIN工具

时间:2016-05-02 18:26:19

标签: c++ linux g++ intel-pin

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

2 个答案:

答案 0 :(得分:4)

所以我能够在PIN的网站here下找到一些关于改变“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文件更改为另一个make文件的是我在引号中添加的单词。请注意,引用的单词不应该在实际的“makefile.rules”

中有引号

答案 1 :(得分:2)

您需要在“makefile.rules”结尾处添加新规则:

$(OBJDIR)YourPinToolMainFile$(PINTOOL_SUFFIX): $(OBJDIR)YourPinToolMainFile$(OBJ_SUFFIX) $(OBJDIR)somefile$(OBJ_SUFFIX)
$(LINKER) $(TOOL_LDFLAGS) $(LINK_EXE)$@ $^ $(TOOL_LPATHS) $(TOOL_LIBS)