如何找到.so文件的库名?

时间:2016-10-31 13:00:39

标签: cmake shared-libraries static-linking

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

getname /usr/lib/libprofiler.so

我想这样做,因为

CMakeLists.txt需要它
target_link_libraries(MyProject name_of_library)

1 个答案:

答案 0 :(得分:2)

执行以下步骤将现有lib链接到目标:

  1. 告诉您需要哪个lib:here profiler。
  2. 构建lib的名称。 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})
    

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

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

相关问题