问题
For example, I have libprofiler.so file. How can I get name of this shared object like this:
getname /usr/lib/libprofiler.so
I want to do it because it is required for CMakeLists.txt in
target_link_libraries(MyProject name_of_library)
回答1:
Do the following steps to link an existing lib to your target:
- Inform you which lib do you need: here profiler.
- Build the name of the lib. CMake does not really needs this but it is worth to know: Example on Unix/Linux lib + NAME + [.so|.a] [VERSION]. Here:
libprofiler.so. In your CMakeLists.txt:
find_library(LIB_PROFILER NAMES profiler libprofiler.so libprofiler.so.V123) add_executable(MyApp ${SOURCES}) target_link_libraries(MyApp ${LIB_PROFILER})The code above tries to find a lib and checks the following name profiler,
libprofiler.soandlibprofiler.so.V123. If found, the variableLIB_PROFILERpoints to the lib file. Use the variable as one of the files linked to your target.
In your code, you also missed the ${} around the variable.
来源:https://stackoverflow.com/questions/40342705/how-can-i-find-a-library-name-of-so-file