Невозможно связать со статической библиотекой libx264.lib

Я создаю пользовательский видеокодер, используя x264 в качестве статической библиотеки. Я следовал этот руководство для того, чтобы построить статическую библиотеку. Попытка скомпилировать это:

x264_t * setup_encoder(int width, int height){
x264_param_t param;
x264_param_default_preset(&param, "veryfast", "zerolatency");
param.i_threads = 1;
param.i_width = width;
param.i_height = height;
param.i_fps_num = 26;
param.i_fps_den = 1;
// Intra refres:
param.i_keyint_max = 26;
param.b_intra_refresh = 1;
//Rate control:
param.rc.i_rc_method = X264_RC_CRF;
param.rc.f_rf_constant = 25;
param.rc.f_rf_constant = 25;
param.rc.f_rf_constant_max = 35;
//For streaming:
param.b_repeat_headers = 1;
param.b_annexb = 1;
x264_param_apply_profile(&param, "baseline");

return x264_encoder_open(&param);
}

Результаты в:

main.obj: ошибка LNK2019: неразрешенный внешний символ «int __cdecl x264_param_default_preset (struct x264_param_t *, char const *, char const *)»

main.obj: ошибка LNK2019: неразрешенный внешний символ «int __cdecl x264_param_apply_profile (struct x264_param_t *, char const *)»

main.obj: ошибка LNK2019: неразрешенный внешний символ «struct x264_t * __cdecl x264_encoder_open_136 (struct x264_param_t *)»

% PROJECT_DIR%: фатальная ошибка LNK1120: 3 неразрешенных внешних кода

Линкер сканирует libx264.lib, но не может ничего найти внутри.

Searching .\lib\libx264.lib:

С помощью dumpbin / HEADERS я могу найти объявление, которое мне нужно, но компоновщик не может этого сделать.

SECTION HEADER #38
.text name
0 physical address
0 virtual address
E60 size of raw data
930C file pointer to raw data (0000930C to 0000A16B)
D219 file pointer to relocation table
0 file pointer to line numbers
40 number of relocations
0 number of line numbers
60501020 flags
Code
COMDAT; sym= x264_param_default_preset
16 byte align
Execute Read

Enviroment — это Visual Studio 2012 с Intel Compiler 14 в 64-разрядной версии Windows 8.

0

Решение

попробуйте использовать привязки в стиле C.

extern "C" {
#include <x264.h>
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]