我正在运行一个使用我创建的库的应用程序。 此示例应用程序是通过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帮助?
感谢。
答案 0 :(得分:0)
-L/usr/local/App/lib/ -lMYLIB
就是你的目标。
可能是链接与完整库名称设置“rpath”,这基本上是嵌入在可执行文件中的LD_LIBRARY_PATH
。您可以使用chrpath <executable>
检查rpath的当前值(如果有)。