如何在linux中发生外部dll引用

时间:2011-04-14 09:44:20

标签: linux dll

我正在运行一个使用我创建的库的应用程序。 此示例应用程序是通过make文件生成的,该文件将应用程序构建为

LIBNAME=/usr/local/App/lib/libMYLIB.so
  

$(CC)-o sample sample.o $(LIBNAME)

我可以在不设置LD_LIBRARY_PATH的情况下运行应用程序。这是预期的吗? 在LIBNAME中使用完整路径是否与它有关? ldd示例返回(在其他条目中)

/usr/local/App/lib/libMYLIB.so (0x00002aaaaaaad000)

我需要做哪些更改,以便在不设置LD_LIBRARY_PATH env变量的情况下,我的应用程序不起作用。使用-lMyLIB和cc帮助?

感谢。

1 个答案:

答案 0 :(得分:0)

-L/usr/local/App/lib/ -lMYLIB就是你的目标。

可能是链接与完整库名称设置“rpath”,这基本上是嵌入在可执行文件中的LD_LIBRARY_PATH。您可以使用chrpath <executable>检查rpath的当前值(如果有)。