【问题标题】:Error Building Pin Tool that Uses External Library错误构建使用外部库的引脚工具
【发布时间】:2018-05-22 23:21:22
【问题描述】:

我在头文件 imp.h 中声明了一个函数 foo(),并在 imp.c 中实现了它。然后我生成了一个名为 libimp.so 的共享库,并在我的 Pin 工具中调用了 foo()。

为了将该工具与这个新库链接,我在其目录中的 makefile.rules 中添加了以下定义:

TOOL_CXXFLAGS += -I/path/to/imp.h
TOOL_LPATHS += -L/path/to/libimp.so
TOOL_LIBS += -limp

我还将 LD_LIBRARY_PATH 设置为 /path/to/libimp.so。但是,在运行时,如果我使用 foo(),会收到以下错误:

dlopen failed. library "libimp.so" not found.

当我从一个简单的测试程序中调用它时,该库就可以了。有什么想法吗?

【问题讨论】:

标签: compilation shared-libraries dynamic-linking intel-pin


【解决方案1】:

我还将 LD_LIBRARY_PATH 设置为 /path/to/libimp.so

如果libimp.so 的完整路径字面意思是/path/to/libimp.so,那么LD_LIBRARY_PATH 的正确值是/path/to,不是/path/to/libimp.so。

(从你的问题中不清楚你是否理解这一点。)

您可能希望将您的 pintool 与 -Wl,--rpath=/path/to 链接,这样您根本不必设置 LD_LIBRARY_PATH。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
相关资源
最近更新 更多