Handling Some LD_LIBRARY_ERRORS
Question: error while loading shared libraries: libwx_gtk3u_core-3.3.so.0: cannot open shared object file: No such file or directory
\=> Working Answer
The error you're encountering indicates that the dynamic linker is unable to locate the wxWidgets shared library (libwx_gtk3u_
core-3.3.so
.0
) at runtime. This can happen when wxWidgets is installed or built but the system does not know where to find the libraries.
Here are steps to resolve this issue:
1. Check if wxWidgets is Installed Correctly
First, check if the wxWidgets library is installed in the correct location by running:
ldconfig -p | grep libwx_gtk3u_core
If you don’t see the library in the output, it may not be installed in a directory that the system linker checks.
2. Locate the wxWidgets Library
If wxWidgets was built from source, locate where the shared library was installed:
sudo find / -name 'libwx_gtk3u_core-3.3.so.0'
This command will search for the library across the filesystem. Note the path where the library is located.
3. Add the Library Path to LD_LIBRARY_PATH
If the library is installed in a non-standard directory (e.g., /usr/local/lib
or another custom location), you need to tell the linker where to find it.
Assuming you find the library in
/usr/local/lib
, you can add it to theLD_LIBRARY_PATH
environment variable:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
To make this change permanent, add the above line to your shell profile file (e.g.,
~/.bashrc
or~/.zshrc
):echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
4. Run ldconfig
Alternatively, you can add the directory where the wxWidgets library is located to the system library path by adding it to the /etc/
ld.so
.conf.d/
configuration and then running ldconfig
:
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/wxWidgets.conf'
sudo ldconfig
This will update the shared library cache, and the system should be able to find the libwx_gtk3u_
core-3.3.so
.0
library after that.
5. Verify
After doing one of the above steps, you can verify by running your wxWidgets program again:
./your_wxwidgets_program
This should resolve the issue of the missing shared library. Let me know if the error persists!