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!
Subscribe to my newsletter
Read articles from Arun Udayakumar directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by