Я хочу использовать libx264 в одном из моих проектов на Windows. Я скомпилировал x264 с помощью cygwin, включая общую и статическую библиотеки. Все отлично работает, также статические и динамические библиотеки правильно установлены в cygwin.
При попытке скомпилировать другой проект, который использует libx264 (gcc ... -lx264), я получаю сообщение об ошибке:
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:406: undefined reference to `x264_param_default_preset(x264_param_t*, char const*, char const*)'
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:425: undefined reference to `x264_param_apply_profile(x264_param_t*, char const*)'
Кажется, что у компоновщика есть проблема с моими встроенными библиотеками libx264, но что именно здесь не так? Как правильно связать x264?
Вывод полной сборки выглядит следующим образом:
Сборка конфигурации Отладка для тестирования проекта **
make all
Building target: test.exe
Invoking: Cygwin C++ Linker
g++ -L"/cygdrive/c/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib" -L"/cygdrive/c/Program Files (x86)/Microsoft DirectX SDK (June 2010)/Lib/x86" -L/usr/local/lib -o "test.exe" ./main.o -lx264.dll -lKernel32 -lUser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -ld3dx9d -ld3d9 -loleaut32 -luuid -lm
./main.o: In function `_Z8InitX264ii':
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:406: undefined reference to `x264_param_default_preset(x264_param_t*, char const*, char const*)'
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:425: undefined reference to `x264_param_apply_profile(x264_param_t*, char const*)'
collect2: ld returned 1 exit status
make: *** [test.exe] Error 1
**** Build Finished ****
Спасибо за вашу помощь!