【问题标题】:How can I find a library name of .so file?如何找到 .so 文件的库名称?
【发布时间】:2016-10-31 13:00:38
【问题描述】:

例如,我有libprofiler.so 文件。我怎样才能像这样获得这个共享对象的名称:

getname /usr/lib/libprofiler.so

我想这样做是因为CMakeLists.txt中需要它

target_link_libraries(MyProject name_of_library)

【问题讨论】:

    标签: cmake shared-libraries static-linking


    【解决方案1】:

    执行以下步骤将现有库链接到您的目标:

    1. 告知您需要哪个库:此处为 profiler。
    2. 构建库的名称。 CMake 并不真正需要这个,但值得知道:Unix/Linux lib + NAME + [.so|.a] [VERSION] 上的示例。在这里:libprofiler.so
    3. 在您的 CMakeLists.txt 中:

      find_library(LIB_PROFILER NAMES profiler libprofiler.so libprofiler.so.V123)
      add_executable(MyApp ${SOURCES})
      target_link_libraries(MyApp ${LIB_PROFILER})
      

      上面的代码尝试查找一个库并检查以下名称分析器libprofiler.solibprofiler.so.V123。如果找到,变量LIB_PROFILER 指向lib 文件。 将变量用作链接到目标的文件之一。

    在您的代码中,您还错过了变量周围的${}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 2013-09-04
      • 1970-01-01
      • 2015-11-14
      相关资源
      最近更新 更多