Linux excutable in the implementation of the default is to search the/lib and/usr/lib two directories, and then follow the ld.so.conf inside the configuration search absolute path, linux default is not in the current directory search dynamic library. When Windows loads a dynamic library, the default is to load the dynamic library in the local directory first, and then search the Windows/system and windows/system32 directories.
Windows ' Dynamic library search order, while potentially confusing, is undoubtedly convenient for development and testing, especially when the debug and release versions of dynamic libraries need to be switched frequently for testing. Linux Dynamic Library Search order although can be said to be more rigorous, but relatively rigid, and sometimes cause inconvenience.
LDD LB//view process-dependent dynamic libraries
In fact, Linux can also support "loading the dynamic library of the current directory." Just set the appropriate environment variable to Ld_library_path. There are three ways to set up the method:
1, temporary modification, log out after the failure
Executed in terminal: Export ld_library_path=./
2, so that the current account will be priority to load the current directory of the dynamic library
Modify ~/.bash_profile in Red Hat add two lines to the end of the file: ld_library_path=./and Export Ld_library_path
(and the name of the file to be modified in Ubuntu is ~/.profile)
3, so that all accounts will first load the current directory of the dynamic library
Modify/etc/profile add two lines to the end of the file: ld_library_path=./and Export Ld_library_path
PS: Modifying ld.so.conf cannot achieve our goal, because ld.so.conf only supports absolute paths.
Ubuntu Linux Setup loads the dynamic library so file from the current directory