PKG_CONFIG_PATH 找不到所需的软件包

PKG_CONFIG_PATH A required package was not found

提问人:Андрей Тернити 提问时间:9/6/2023 最后编辑:Андрей Тернити 更新时间:9/6/2023 访问量:58

问:

我想将我的C++应用程序与任何库链接,例如与 libavcodec.so 我尝试方法一

set(CMAKE_PREFIX_PATH ${pkgconfig_path})

但是当我尝试构建时

cmake -S Qt_FFMpeg/src/ -B Qt_FFMpeg/build-host/ --fresh

我收到错误“未找到所需的包”
好的,我尝试方法二

set(ENV{PKG_CONFIG_PATH} ${pkgconfig_path})

它起作用了。为什么方法我不起作用? 完整代码在这里

我使用 Ubuntu 22 x86_64,cmake 3.26.4

cmake 环境变量 libav libavcodec pkg-config

评论

2赞 Tsyvarev 9/6/2023
引用的答案为 和 变量分配不同的值。变量赋值为 PKG_CONFIG_PATH' 赋值为 。在您的问题帖子中,您似乎将路径分配给 ,因此它不起作用。相反,您应该为该变量赋值。CMAKE_PREFIX_PATHPKG_CONFIG_PATHCMAKE_PREFIX_PATH<...>/opencv-install, the variable <...>/opencv-install/lib/pkgconfig<prefix>/lib/pkgconfigCMAKE_PREFIX_PATH<prefix>

答:

1赞 Андрей Тернити 9/6/2023 #1

现在有效!谢谢@Tsyvarev

使用环境变量

cmake_path(SET pkgconfig_path "${CMAKE_CURRENT_LIST_DIR}/../../FFMpeg_themself/ffmpeg_build/lib/pkgconfig/" NORMALIZE)
set(ENV{PKG_CONFIG_PATH} ${pkgconfig_path})
message("I found $ENV{PKG_CONFIG_PATH}")

没有环境变量

cmake_path(SET pkgconfig_path "${CMAKE_CURRENT_LIST_DIR}/../../FFMpeg_themself/ffmpeg_build/" NORMALIZE)
set(CMAKE_PREFIX_PATH ${pkgconfig_path})
message("I found ${CMAKE_PREFIX_PATH}")