Ссылка на библиотеку libx264 из кода c Ubuntu - PullRequest
2 голосов
/ 24 января 2012

Я пытаюсь написать небольшое приложение на C, которое использует API x264, и у меня возникают проблемы при компиляции кода со ссылкой на библиотеку x264.

В каталоге / project / естьдве подпапки: / project / mycode / и /project/x264-snapshot-20120120-2245.

Я установил x264 в последний подкаталог, используя ./configure, а затем «make».Как таковая библиотека, я думаю, я хочу сослаться на это /project/x264-snapshot-20120120-2245/libx264.a

В / project / mycode / у меня есть один файл исходного кода (prototype.c), который имеет следующий импорт:

#include <stdio.h>
#include <inttypes.h>
#include "../x264-snapshot-20120120-2245/x264_config.h"
#include "../x264-snapshot-20120120-2245/x264.h"

Как и ожидалось, если я пытаюсь скомпилировать без ссылки на библиотеку x264, я получаю ошибку:

/project/mycode: gcc -o prototype prototype.c
/tmp/cc5NwRTp.o: In function `main':
prototype.c:(.text+0x6c): undefined reference to `x264_param_default_preset'
prototype.c:(.text+0xf6): undefined reference to `x264_param_apply_profile'
collect2: ld returned 1 exit status

Поэтому я пытаюсь связатьбиблиотека, о которой я упоминал выше, но она не найдена:

/project/mycode: gcc -o prototype prototype.c -I../x264-snapshot-20120120-2245/ -llibx264.a
/usr/bin/ld: cannot find -llibx264.a
collect2: ld returned 1 exit status

Я пробовал несколько вариантов, таких как:

gcc -o prototype prototype.c -I../x264-snapshot-20120120-2245/ -l ../x264-snapshot-20120120-2245/libx264.a
gcc -o prototype prototype.c -I../x264-snapshot-20120120-2245/ -llibx264
gcc -I ../x264-snapshot-20120120-2245/ -llibx264.a -o prototype prototype.c

Как сейчас, наверное, очевидно, я 'Я довольно новичок в этом, поэтому я надеюсь, что есть простое решение

1 Ответ

2 голосов
/ 27 января 2012

Для тех, кто смотрит на это в будущем, ответ был:

gcc -pthread -o prototype -L../x264-snapshot-20120120-2245/ -lx264 -lm

-L указывает каталог библиотеки, а -l указывает имя библиотеки без минуса префикс 'lib' и суффикс '.a'. Аргументы -lm и -pthread также необходимы для библиотеки x264.

...