在 Ubuntu 中,尽管“ldd mybinary”明确找到了路径,但我的环境变量“LD_LIBRARY_PATH”怎么会是空的?

在 Ubuntu 中,尽管“ldd mybinary”明确找到了路径,但我的环境变量“LD_LIBRARY_PATH”怎么会是空的?

我正在尝试构建自己的本地应用程序。由于snapcraft缺乏qbs支持,我正在尝试开发自己的对 qbs 的被动支持。

无论如何,只需按以下步骤操作,在 QtCreator 中,qbs 项目允许安装选项:

在此处输入图片描述

以下是我目前对 QBS 所做的事情:

$ tree ./bin
./bin
└── category-scraper

0 directories, 9 files
$ tree ./lib
./lib
├── libqconsoletoolkit.so
├── libqnetworktoolkit.so
├── libqparsingtoolkit.so
├── libqsnappytoolkit.so
└── libqunicodetoolkit.so

0 directories, 15 files

当我运行该应用程序时:

$ ./bin/category-scraper 
./bin/category-scraper: error while loading shared libraries: libqnetworktoolkit.so: cannot open shared object file: No such file or directory

这是有道理的,因为ldd

$ ldd bin/category-scraper 
    linux-vdso.so.1 (0x00007ffe23b57000)
    libQt5WebEngineWidgets.so.5 => /home/akiva/Programming/Qt/5.11.1/gcc_64/lib/libQt5WebEngineWidgets.so.5 (0x00007f843ca44000)
    libQt5Widgets.so.5 => /home/akiva/Programming/Qt/5.11.1/gcc_64/lib/libQt5Widgets.so.5 (0x00007f843c200000)
    libQt5Network.so.5 => /home/akiva/Programming/Qt/5.11.1/gcc_64/lib/libQt5Network.so.5 (0x00007f843be6b000)
    libQt5Core.so.5 => /home/akiva/Programming/Qt/5.11.1/gcc_64/lib/libQt5Core.so.5 (0x00007f843b711000)
    libqnetworktoolkit.so => not found
    libqunicodetoolkit.so => not found
    libqparsingtoolkit.so => not found
    libqconsoletoolkit.so => not found
    libqsnappytoolkit.so => not found
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f843b388000)

令我困惑的是:

$ echo $LD_LIBRARY_PATH 

没有产生任何结果,并且环境变量甚至不存在,直到我尝试手动设置它......这也不起作用。

为什么这个环境变量是空的,ldd 没有这个变量如何链接,我该怎么做才能让它找到.so我定义的文件?

谢谢。

相关内容