Vim не может найти библиотеку C ++ libavformat / libavutil (такого файла или каталога нет)

0

Загружая файл omxplayer.cpp в vim, он вызывает следующую ошибку:

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, поэтому, что может вызвать эту проблему?

  • 0
    фатальная ошибка: libavformat / avformat.h: нет такого файла или каталога, ничего общего с ld, у вас отсутствует заголовочный файл
  • 0
    @how как я могу проверить, есть ли он там или нет? cat /usr/lib/libavormat.so = P И как мне это получить?
Показать ещё 4 комментария
Теги:
vim
ld

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. команда.

  • 0
    Но как бы я проинструктировал vim сделать эту g++ -Ipath/to/headers omxplayer.cpp
  • 0
    Извините, но я понятия не имею о внутренностях vim ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню