Vim找不到C ++ libavformat / libavutil库(没有这样的文件或目录)

时间:2013-11-08 21:54:23

标签: c++ c vim ld

在vim中加载omxplayer.cpp文件,它会给我以下错误:

  

omxplayer.cpp | 34 col 34 |致命错误:libavformat / avformat.h:没有这样的文件或目录

这就是问题发生的地方

#include <libavformat/avformat.h>
#include <libavutil/avutil.h>

但我知道文件存在:

$ ls -l /usr/lib/libavu*
lrwxrwxrwx 1 root root     28 2013-11-08 13:46 /usr/lib/libavutil.so -> /usr/lib/libavutil.so.51.7.0
lrwxrwxrwx 1 root root     19 2012-06-13 12:38 /usr/lib/libavutil.so.51 -> libavutil.so.51.7.0
-rw-r--r-- 1 root root 117212 2012-06-13 12:38 /usr/lib/libavutil.so.51.7.0
$ ls -l /usr/lib/libavf*
lrwxrwxrwx 1 root root      30 2013-11-08 13:29 /usr/lib/libavformat.so -> /usr/lib/libavformat.so.53.3.0
lrwxrwxrwx 1 root root      21 2012-06-13 12:38 /usr/lib/libavformat.so.53 -> libavformat.so.53.3.0
-rw-r--r-- 1 root root 1053000 2012-06-13 12:38 /usr/lib/libavformat.so.53.3.0

ldconfig也可以找到它们:

$ ldconfig -p | grep libavformat && ldconfig -p | grep libavutil
libavformat.so.53 (libc6, hwcap: 0x0008000000008000) => /usr/lib/i686/cmov/libavformat.so.53
libavformat.so.53 (libc6) => /usr/lib/libavformat.so.53
libavutil.so.51 (libc6, hwcap: 0x0008000000008000) => /usr/lib/i686/cmov/libavutil.so.51
libavutil.so.51 (libc6) => /usr/lib/libavutil.so.51

我已经读过ldconfig用于运行时的地方,而ld用于构建时间,但是,在这种情况下,我知道库中有/ usr / lib,因此,可能导致此问题的原因是什么?

1 个答案:

答案 0 :(得分:2)

omxplayer.cpp|34 col 34| fatal error: libavformat/avformat.h: No such file or directory

错误信息全部说明:它不在库中,但它是未找到的头文件。  正常位置为/usr/include/libavformat

首先按命令检查g++ -v omxplayer.cpp是否包含标题位置,此命令将显示标题文件包含的所有目录。

如果它没有显示包含指定标题的目录,则需要在g++ -Ipath/to/headers omxplayer.cpp.命令中指定它的位置。