Compilation 更改英特尔PIN码中的编译器选项

Compilation 更改英特尔PIN码中的编译器选项,compilation,shared-libraries,compiler-warnings,intel-pin,Compilation,Shared Libraries,Compiler Warnings,Intel Pin,编译Pin工具时如何更改g++选项?例如,是否可以防止警告被视为错误,或者是否可以将工具与外部库(如bfd)链接?不建议将Pin链接到预编译库。Pin使用不同的libc,链接将在运行时失败或导致问题。如果您希望使用外部库,可以根据pin的运行时编译它,或者在单独的进程中使用它 要以非标准方式生成特定文件,请向相关makefile的生成规则部分添加规则 一般来说,修改pin的默认标志是个坏主意。它们都是有目的的 不建议将Pin链接到预编译库。Pin使用不同的libc,链接将在运行时失败或导致问题。

编译Pin工具时如何更改g++选项?例如,是否可以防止警告被视为错误,或者是否可以将工具与外部库(如bfd)链接?

不建议将Pin链接到预编译库。Pin使用不同的libc,链接将在运行时失败或导致问题。如果您希望使用外部库,可以根据pin的运行时编译它,或者在单独的进程中使用它

要以非标准方式生成特定文件,请向相关makefile的
生成规则
部分添加规则


一般来说,修改pin的默认标志是个坏主意。它们都是有目的的

不建议将Pin链接到预编译库。Pin使用不同的libc,链接将在运行时失败或导致问题。如果您希望使用外部库,可以根据pin的运行时编译它,或者在单独的进程中使用它

要以非标准方式生成特定文件,请向相关makefile的
生成规则
部分添加规则


一般来说,修改pin的默认标志是个坏主意。它们都是有目的的

所以gcc 7增加了一些额外的警告,这打破了我的一个别针工具。所以我想删除
-Werror
命令行参数。这不应该影响结束二进制文件,因此它应该是完全安全的

您只需使用filter out将其从pin指定参数列表中删除即可

这是我的makefile.rules的“构建规则”部分的全部内容

MY_CXX_FLAGS:=$(filter-out -Werror, $(TOOL_CXXFLAGS))

$(OBJDIR)generate_loop_info$(OBJ_SUFFIX): generate_loop_info.cpp
    $(CXX) $(MY_CXX_FLAGS) -D OUTPUT_FILE $(COMP_OBJ)$@ $<

$(OBJDIR)generate_loop_info$(PINTOOL_SUFFIX): $(OBJDIR)generate_loop_info$(OBJ_SUFFIX)
    $(LINKER)  $(TOOL_LDFLAGS) $(LINK_EXE)$@ $< $(TOOL_LPATHS) $(TOOL_LIBS)
MY_CXX_标志:=$(过滤掉-Werror,$(工具CXXFLAGS))
$(OBJDIR)generate_loop_info$(OBJ_后缀):generate_loop_info.cpp
$(CXX)$(MY_CXX_标志)-D输出文件$(COMP_OBJ)$@$<
$(OBJDIR)generate_loop_info$(PINTOOL_后缀):$(OBJDIR)generate_loop_info$(OBJ_后缀)
$(链接器)$(工具\u LDFLAGS)$(链接\u EXE)$@$<$(工具\u lpath)$(工具库)

因此gcc 7增加了一些额外的警告,这些警告破坏了我的一个pin工具。所以我想删除
-Werror
命令行参数。这不应该影响结束二进制文件,因此它应该是完全安全的

您只需使用filter out将其从pin指定参数列表中删除即可

这是我的makefile.rules的“构建规则”部分的全部内容

MY_CXX_FLAGS:=$(filter-out -Werror, $(TOOL_CXXFLAGS))

$(OBJDIR)generate_loop_info$(OBJ_SUFFIX): generate_loop_info.cpp
    $(CXX) $(MY_CXX_FLAGS) -D OUTPUT_FILE $(COMP_OBJ)$@ $<

$(OBJDIR)generate_loop_info$(PINTOOL_SUFFIX): $(OBJDIR)generate_loop_info$(OBJ_SUFFIX)
    $(LINKER)  $(TOOL_LDFLAGS) $(LINK_EXE)$@ $< $(TOOL_LPATHS) $(TOOL_LIBS)
MY_CXX_标志:=$(过滤掉-Werror,$(工具CXXFLAGS))
$(OBJDIR)generate_loop_info$(OBJ_后缀):generate_loop_info.cpp
$(CXX)$(MY_CXX_标志)-D输出文件$(COMP_OBJ)$@$<
$(OBJDIR)generate_loop_info$(PINTOOL_后缀):$(OBJDIR)generate_loop_info$(OBJ_后缀)
$(链接器)$(工具\u LDFLAGS)$(链接\u EXE)$@$<$(工具\u lpath)$(工具库)

查看pin套件中的
makefile.rules
文件,查看特殊规则的外观我是否应该删除$(TOOLS\u ROOT)/Config/makefile.default.rules中的匹配目标,并在我的工具目录的makefile.rules文件中添加我自己的规则?否,您自己的目标将覆盖默认目标。不要删除默认目标,因为这将使所有非自定义生成规则失败。谢谢!此链接也很有用:查看pin工具包中的
makefile.rules
文件,查看特殊规则的外观我是否应该删除$(TOOLS\u ROOT)/Config/makefile.default.rules中的匹配目标,并将我自己的规则添加到我的工具目录的makefile.rules文件中?否,您自己的目标将覆盖默认目标。不要删除默认目标,因为这将使所有非自定义生成规则失败。谢谢!此链接也很有用:链接到外部库:链接到外部库: