在另一个项目中使用libx264时未定义的引用错误

时间:2014-08-10 06:37:07

标签: dll linker-errors x264

当我在另一个项目中使用x264 DLL时,在制作该项目时会报告“未定义的引用错误”!

这是我的(example_exe.cpp)代码:

#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>

#define X264_API_IMPORTS
#include "x264.h"


int main(void)
{
    x264_param_t *t;
    x264_encoder_open(t);
    return 0;
}

这就是我编译和编写代码的方式:

g++ -c example_exe.cpp
g++ -o example_exe.exe example_exe.o -L. -llibx264-142

我收到以下错误:

example_exe.o:example_exe.cpp:(.text+0x22): undefined reference to `x264_encoder_open_142(x264_param_t*)`

1 个答案:

答案 0 :(得分:3)

编译C ++(而非C)时,需要使用extern&#34; C&#34; {...}用于x264.h标题,即

extern "C" {
#include "x264.h"
}