正如標題所述,我正在尋找一種方法來編譯我的PIN工具並提供一些依賴關係。因此,例如,如果我在我的PIN工具中使用了#include "somefile.h"
,並生成了一些目標文件g++ -c somefile.cpp
,那麼如何鏈接我的目標文件以使用我的PIN工具進行編譯,以便我可以在我的PIN工具中使用它的功能?編譯與依賴關係的PIN工具
2
A
回答
3
所以我能找到下PIN的網站here改變「makefile.rules」一些文檔。對於我的情況,下面這6行將被添加到「makefile.rules」的末尾。
$(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)
會從一個make文件更改爲另一個唯一的事情是我加上引號的話。請注意,引用的單詞在實際的「makefile.rules」中不應包含引號。
2
你在你的「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)
相關問題
- 1. 類依賴關係工具
- 2. 未編譯的Maven依賴關係
- 3. C - 編譯包含的依賴關係
- 4. Scala/Clojure編譯依賴關係
- 5. 指定編譯順序依賴關係
- 6. 重新編譯Jar依賴關係
- 7. Maven不會編譯Selenium依賴關係
- 8. 在具有依賴關係的Code :: Blocks中編譯
- 9. 如何交叉編譯具有依賴關係的C++庫?
- 10. 使用javac和jars編譯具有依賴關係的Java類
- 11. 無法編譯具有依賴關係的Python腳本
- 12. 如何編譯具有依賴關係的包?
- 13. 編譯C文件與彙編程序文件依賴關係
- 14. java依賴關係分析工具
- 15. Clutter工具包依賴關係 - Ubuntu 11.04
- 16. 結構圖 - 具有依賴關係的安裝依賴關係
- 17. mvn依賴關係:具有傳遞性依賴關係的樹
- 18. 編譯與其他類的依賴關係的ruby腳本
- 19. 依賴關係的nuget依賴關係
- 20. 編譯Linux上的C#項目與依賴關係
- 21. Web工具平臺XML編輯器插件的依賴關係
- 22. 依賴關係排序與循環依賴關係的檢測
- 23. 編譯循環依賴關係如何工作?
- 24. PHPUnit provider不與依賴關係工作
- 25. 編譯時間與運行時間依賴關係 - Java
- 26. Gradle編譯依賴關係與/ out「@aar」有什麼區別?
- 27. 編譯GWT項目與GWT項目依賴關係
- 28. MXMLC編譯多SWFS與SWC依賴關係
- 29. AngularJS工廠依賴關係
- 30. Jenkins工作依賴關係
請注意,目標文件必須使用與Pin本身相同的運行時進行編譯。我建議您查看一些Pin工具包makefiles,以查看如何生成obj文件並向您的Pintool生成文件添加類似的行。 – nitzanms