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