0

vim でomxplayer.cppファイルをロードすると、次のエラーが表示されます。

omxplayer.cpp|34 列 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 にあることがわかっているため、この問題の原因は何ですか?

4

1 に答える 1

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.コマンドでその場所を指定する必要があります。

于 2013-11-09T07:30:12.817 に答える