Skip to content
Life is short Play more
  • Computer
    • Cloud
    • DataBase
      • Mysql
      • Oracle
    • Operation system
      • Android
      • Linux
      • Windows
    • Programming
      • C , C++
      • Java
      • Javascript
      • Linux shell
      • Php
      • python
      • Web Programing
    • Security
    • Virtulization
    • Web hosting
      • Ad
  • Life Testing
  • My work
    • wrapEasyDevice
  • Network
    • HTTP
  • Note
  • Other
    • Embedded
    • Hardware
  • Share
    • Articles
    • Music
    • Tools
    • Video
  • Software Testing
    • Automation Testing
    • Cloud Testing
    • Functional Testing
    • Performance Testing
Life is short Play more
Life is short play more

cmake 找不到模块问题解决

Posted On 2016年5月7日

前些日子手动编译opencv模块的时候,一直提示找不到ffmpeg libs (例如 libswscale , libavformat 等库)。 奇怪,明明我源码安装了 ffmpeg,但为什么还是找不到呢。

通过cmake的 的脚本,阅读了下cmake的一些脚本,终于找到了原因并解决。 opencv的cmake脚本使用了 CHECK_MODULE 宏, 而这个宏又调用了 pkg_check_module 宏。(此宏的定义在 /usr/share/cmake/FindPkgConfig.cmake)。 pkg_check_module中需要通过 pkg-config 命令来查找是否有对应的package 模块。 所以我们也需要安装 pkg-config 软件包。 那么pkg-config 又是如何来知道我们的系统是否安装了某个模块呢? pkg-config是通过 *.pc 的文件来判断。 例如 如果pkg-config找到了 libswscale2.11.pc 则就说明我们有 libswscale 2.11 库。

而 libswscale2.11.pc 里则定义了 header和lib的目录位置。

所以问题来了,我明明通过源码的方式安装了,但是还是提示找不到呢。 原来是 pkg-config 寻找 pc文件目录的问题。

默认pkg-config(笔者的安装版本) 只会寻找 /usr/share/pkgconfig/*.pc 和 /usr/lib/pkgconfig/*.pc , /usr/lib64/pkgconfig/*.pc 。 而我通过源码方式安装的时候, 对应的库的pc文件 默认安装到了 /usr/local/lib/pkgconfig/。 所以pkg-config找不到,也就认为没有安装了。 经过笔者测试,如果通过 yum 安装的方式,则pc文件会放到 /usr/lib 或者 /usr/lib64/ 里,所以就没有这个问题。

解决方法:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig;$PKG_CONFIG_PATH

这样export下,就没有问题了。

此篇文章已被阅读2943 次

相关文章

  1. linux里面mount windows的共享文件夹
  2. windows启动goagent 启动报错
  3. 创建属于你自己的故事,音乐和游戏(编程如此简单)

Related Posts

python no module named _curses的问题解决
如何修改puppet的轮训时间(默认为30分钟)
open source fast key-value storage library

About The Author

The Tester

技术交流,生活学习

Add a Comment

取消回复

邮箱地址不会被公开。 必填项已用*标注

最热文章

  • No results available

近期文章

  • vue2 动态import导入vue提示报错
  • batch udpate sql批量更新数据库中所有表的特定字段值
  • Springboot application启动missing EmbeddedServletContainerFactory错误解决
  • Dubbo使用java api 配置开发禁止使用config center
  • 使用jacoco实时生成后端服务集成测试代码覆盖率报告

近期评论

  • ghj发表在《科学上网trojan的安装和使用》
  • The Tester发表在《cloudflare Rocket Loader建议中国使用者关闭》
  • zhoulujun发表在《cloudflare Rocket Loader建议中国使用者关闭》
  • The Tester发表在《vue+iviewui menu+tabs联动及tabs切换总结》
  • xiaodong.xuexd发表在《sonarqube 7.0 新功能及安装》
  • Josephnex发表在《使用github pages作图床》

标签云

adsense ajax android aws crawler css eclipse findbugs git goagent htmlunit iptables jacoco java javascript jmeter joolma joomla junit jvm lcd linux moco mongodb monkeyrunner mysql oled openvpn oracle pdp php puppet python rabbitmq sonar sonarqube spring springboot ubuntu vpn vue wordpress wrapeasymonkey yii yum

分类目录

© 2025 Life is short Play more | blog | Powered by WordPress & Customizable Blogily