Compilation 生成使用外部库的Pin工具时出错
我在头文件imp.h中声明了一个函数foo(),并在imp.c中实现了它。然后我生成了一个名为libimp.so的共享库,并在我的Pin工具中调用了foo() 为了将该工具与此新库链接,我在其目录中的makefile.rules中添加了以下定义: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
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,但存在错误。这里有一个类似的问题:。