一定要先确定使用的ffmpeg的头文件要用extern c圈起来!!!(我一直make失败的根本原因)
第二点就是要严格保证FFmpeg链接库的顺序不要错:
不使用extern “C”的下场:
使用之后就没问题了:
根本原因:
C++编译器会对函数名进行名称修饰(name mangling),而C语言编译的库函数名不会被修饰;当去掉extern "C"
时,C++编译器会以C++的方式查找这些函数,导致链接器找不到对应的符号。
一定要先确定使用的ffmpeg的头文件要用extern c圈起来!!!(我一直make失败的根本原因)
第二点就是要严格保证FFmpeg链接库的顺序不要错:
不使用extern “C”的下场:
使用之后就没问题了:
根本原因:
C++编译器会对函数名进行名称修饰(name mangling),而C语言编译的库函数名不会被修饰;当去掉extern "C"
时,C++编译器会以C++的方式查找这些函数,导致链接器找不到对应的符号。