Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 如何找到.so文件的库名称?_Cmake_Shared Libraries_Static Linking - Fatal编程技术网

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

Cmake 如何找到.so文件的库名称?,cmake,shared-libraries,static-linking,Cmake,Shared Libraries,Static Linking,例如,我有libprofiler.so文件。如何获取此共享对象的名称,如下所示: getname /usr/lib/libprofiler.so 我之所以想这样做,是因为它是中的CMakeLists.txt所必需的 target_link_libraries(MyProject name_of_library) 执行以下步骤将现有库链接到目标: 通知您需要哪个库:here profiler 构建库的名称。CMake实际上并不需要这个,但值得一提的是:Unix/Linux lib+NAME+[

例如,我有
libprofiler.so
文件。如何获取此共享对象的名称,如下所示:

getname /usr/lib/libprofiler.so
我之所以想这样做,是因为它是中的
CMakeLists.txt
所必需的

target_link_libraries(MyProject name_of_library)

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

  • 通知您需要哪个库:here profiler
  • 构建库的名称。CMake实际上并不需要这个,但值得一提的是: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})
    
    上面的代码试图找到一个lib并检查以下名称探查器,
    libprofiler.so
    libprofiler.so.V123
    。如果找到,变量
    LIB_PROFILER
    将指向LIB文件。 将变量用作链接到目标的文件之一

  • 在代码中,您还遗漏了变量周围的
    ${}