gpt4 book ai didi

c++ - 使用 CMake 包含共享库 (.so)

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:18:09 24 4
gpt4 key购买 nike

我一直在尝试使用 CMake 包含不同类型的库。

  • .a
  • .dylib
  • .so

我终于得到了 .a.dylib 来处理这段代码。

find_library(libname NAMES  libcef.dylib PATHS ${libname_PATH})

除此之外,我还在下面 add_executable 为构建初始化我的所有文件。

target_link_libraries(${PROJECT_NAME} ${libname})

但是,我尝试在 .so 文件中使用相同的代码,但它似乎不起作用。

当我尝试构建时,我从 cmake 得到了这个声明。

Target "project name" links to item

-- path of file --

which is a full-path but not a valid library file name.

我不确定这是否是处理 .so 文件的正确方法,或者我什至没有完全理解什么是 .so 文件。任何意见和/或澄清将不胜感激。

编辑:

理论——我的理论是因为它在名为 ffmpegsumo.so 的库名前没有 lib。但是,当我尝试重命名它时,文件名仍然保存到非常奇怪的变量名中。

最佳答案

这同样适用于 .so 文件,只需确保所需的 .so 文件存在于您提供的 ${libname_PATH} 中。

find_library 以相同的方式处理所有类型 (.a/.so/.dylib/.dll)。问题可能出在下面

-- 路径设置不正确
-- 绝对路径错误
-- .so 不存在
-- 如果错误来自构建(不仅仅是来自配置),.so 可能已损坏,请尝试替换它

--你的库似乎无效

关于c++ - 使用 CMake 包含共享库 (.so),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18646049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com