gpt4 book ai didi

c++ - 如何将 dramsim2 库接口(interface)与 PINtool 链接

转载 作者:行者123 更新时间:2023-11-30 05:26:34 26 4
gpt4 key购买 nike

我想在开发中的 PINtool 中使用 DRAMSim2 作为库接口(interface)。

我尝试熟悉包含 dramsim_test.h 的 dramsim_test.cpp,其中包含 DRAMSim.h(在特定目录中)。

如果我将这些文件放在我的 PINtool 目录中并包含它们(除了 .cpp。为此我使用 PINtool 中的代码)我得到一个链接器(我想)错误:

undefined symbol: _ZN7DRAMSim23getMemorySystemInstanceERKSsS1_S1_S1_jPSs

PINtool 有一个配置文件,里面写了这些:

## Libraries to link
ifeq ($(TARGET_OS),mac)
APP_LIBS := -lm
else
APP_LIBS := -Wl,--as-needed -lm
endif
DL_LIB :=
APP_LIB_ATOMIC := -latomic
APP_LIB_XED := -lxed
TOOL_LIBS := -lpin -lxed
SATOOL_LIBS := -lsapin -lxed
CXX_LIBS :=

dramsim 示例的 makefile 是这样的:

$(CXX) -g -o dramsim_test dramsim_test.cpp -I../ -L../ -ldramsim -Wl,-rpath=../

我想我必须在 pintool 配置文件的某处添加 -ldramism 选项,但我不知道如何添加。

我也不熟悉链接器选项、配置文件等。我如何链接它们?

更新:问题已解决。通过添加 -ldramsim 更改 conf 文件后没有工作,我尝试将 libdramsim.so 移动到 allcache_v7.cpp 的文件夹中并且没问题......

最佳答案

只需将-ldramsim 添加到TOOL_LIBS 变量。您还需要添加它的路径。所以改变这一行:

TOOL_LIBS := -lpin -lxed

TOOL_LIBS := -lpin -lxed -L/path/to/dramsim/ -ldramsim

更新:现在您已经成功构建了您的库,您就快完成了。您只需要确保它在加载时被动态链接器找到。理论上,这是在您的 shell 提示符下按如下方式完成的:

> export LD_LIBRARY_PATH=/path/to/dramsim:${LD_LIBRARY_PATH}
> #command to invoke binary that uses your library allcache_v7.so

如果这仍然给您带来问题,请检查链接器是否可以解决它:

> ldd allcache_v7.so | grep dramsim

这应该会告诉您链接器是否可以解析 libdramsin.so。在 export ... 命令之前和之后尝试 - 查看输出是否从“未找到”之类的内容变为库的真实路径。

关于c++ - 如何将 dramsim2 库接口(interface)与 PINtool 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37707344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com