为什么加载共享库时出现错误

Why do I get Error while loading shared libraries

我在我的计算机上使用 Fedora 在 /home/... 中从源代码安装了 wxWidgets 3.1.2 我正在尝试构建 运行 来自 https://docs.wxwidgets.org/stable/overview_helloworld.html 的 Hello world 示例。它通过键入

编译没有任何错误
g++ widgetTest.cpp `wx-config --cxxflags --libs` -o widgetTest

但是在 ./widgetTest 之后我在 shell 中得到了 ./widgetTest: error while loading shared libraries: libwx_gtk2u_xrc-3.1.so.2: cannot open shared object file: No such file or directory

Whosebug 中的一个答案是在 /usr/lib 中复制整个库,我做到了。然后就不行了,我又遇到了。

(gtk2-devel和gtk3-devel我在安装wxWidgets之前已经安装好了)

ldd ./widgetTest returns:

linux-vdso.so.1 (0x00007ffeacdcf000)
libwx_gtk2u_xrc-3.1.so.2 => not found
libwx_gtk2u_html-3.1.so.2 => not found
libwx_gtk2u_qa-3.1.so.2 => not found
libwx_gtk2u_core-3.1.so.2 => not found
libwx_baseu_xml-3.1.so.2 => /lib64/libwx_baseu_xml-3.1.so.2 (0x00007ffa3faea000)
libwx_baseu_net-3.1.so.2 => /lib64/libwx_baseu_net-3.1.so.2 (0x00007ffa3fa9a000)
libwx_baseu-3.1.so.2 => /lib64/libwx_baseu-3.1.so.2 (0x00007ffa3f7e9000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ffa3f651000)
libm.so.6 => /lib64/libm.so.6 (0x00007ffa3f4cd000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ffa3f4b2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffa3f490000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffa3f2ca000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007ffa3f28b000)
libz.so.1 => /lib64/libz.so.1 (0x00007ffa3f271000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ffa3f26b000)
libsecret-1.so.0 => /lib64/libsecret-1.so.0 (0x00007ffa3f214000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007ffa3f1be000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007ffa3f09e000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007ffa3f073000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffa3fb26000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007ffa3ef55000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007ffa3ef32000)
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007ffa3ed86000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ffa3ed13000)
libffi.so.6 => /lib64/libffi.so.6 (0x00007ffa3ed06000)
libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007ffa3ed00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ffa3ecd3000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ffa3ecb9000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007ffa3ec5c000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007ffa3ebd4000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007ffa3eb81000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007ffa3eb78000)
librt.so.1 => /lib64/librt.so.1 (0x00007ffa3eb6e000)

在打开可执行文件(从同一终端)之前在终端上写入 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib。为了避免每次都这样做,请将该行添加到您的 ~/.bashrc 或类似文件中。 https://wiki.wxwidgets.org/Compiling_and_getting_started