问题
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.so
andlibprofiler.so.V123
. If found, the variableLIB_PROFILER
points 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