如何找到 .so 文件的库名称?
How can I find a library name of .so file?
例如,我有libprofiler.so
个文件。我怎样才能得到这个共享对象的名称:
getname /usr/lib/libprofiler.so
我想这样做,因为
中的 CMakeLists.txt
需要它
target_link_libraries(MyProject name_of_library)
执行以下步骤 link 现有库到您的目标:
- 告诉你你需要哪个库:这里是 profiler。
- 构建库的名称。 CMake 并不真正需要这个,但值得知道:Example on Unix/Linux lib + NAME + [.so|.a] [VERSION]。这里:
libprofiler.so
.
在你的 CMakeLists.txt:
find_library(LIB_PROFILER NAMES profiler libprofiler.so libprofiler.so.V123)
add_executable(MyApp ${SOURCES})
target_link_libraries(MyApp ${LIB_PROFILER})
上面的代码试图找到一个库并检查以下名称分析器,libprofiler.so
和 libprofiler.so.V123
。如果找到,变量 LIB_PROFILER
指向 lib 文件。
使用该变量作为 link 编辑到目标的文件之一。
在您的代码中,您还遗漏了变量周围的 ${}
。
例如,我有libprofiler.so
个文件。我怎样才能得到这个共享对象的名称:
getname /usr/lib/libprofiler.so
我想这样做,因为
中的CMakeLists.txt
需要它
target_link_libraries(MyProject name_of_library)
执行以下步骤 link 现有库到您的目标:
- 告诉你你需要哪个库:这里是 profiler。
- 构建库的名称。 CMake 并不真正需要这个,但值得知道:Example on Unix/Linux lib + NAME + [.so|.a] [VERSION]。这里:
libprofiler.so
. 在你的 CMakeLists.txt:
find_library(LIB_PROFILER NAMES profiler libprofiler.so libprofiler.so.V123) add_executable(MyApp ${SOURCES}) target_link_libraries(MyApp ${LIB_PROFILER})
上面的代码试图找到一个库并检查以下名称分析器,
libprofiler.so
和libprofiler.so.V123
。如果找到,变量LIB_PROFILER
指向 lib 文件。 使用该变量作为 link 编辑到目标的文件之一。
在您的代码中,您还遗漏了变量周围的 ${}
。