Compilation 生成使用外部库的Pin工具时出错

Compilation 生成使用外部库的Pin工具时出错,compilation,shared-libraries,dynamic-linking,intel-pin,Compilation,Shared Libraries,Dynamic Linking,Intel Pin,我在头文件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

我在头文件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.
当我从一个简单的测试程序调用该库时,它是正常的。有什么想法吗

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

如果
libimp.so
的完整路径实际上是
/path/to/libimp.so
,那么
LD_LIBRARY\u path
的正确值是
/path/to
,而不是
/path/to/libimp.so

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


您可能希望将pintool与
-Wl,--rpath=/path/to
链接,这样就不必设置
LD\u LIBRARY\u path

路径正常。我还使用了-Wl,--rpath=/path/to,但存在错误。这里有一个类似的问题:。