在我的代码中引用OpenFEC(openfec.org)函数时出现此问题:
anders@ubuntu:~/workspace/fectest$ gcc -L../openfeclib/ -l'openfec' -I../openfeclib fectest.cpp
/tmp/ccEXLrdc.o: In function `main':
fectest.cpp:(.text+0x17a): undefined reference to `of_create_codec_instance(of_session**, of_codec_id_t, unsigned char, unsigned int)'
fectest.cpp:(.text+0x2db): undefined reference to `of_set_fec_parameters(of_session*, of_parameters*)'
fectest.cpp:(.text+0x347): undefined reference to `of_build_repair_symbol(of_session*, void**, unsigned int)'
fectest.cpp:(.text+0x395): undefined reference to `of_release_codec_instance(of_session*)'
collect2: ld returnerade avslutningsstatus 1
包含这些功能的c文件包含在openfec-library中。
命令nm ../openfeclib/libopenfec.so | grep of_release_codec
给出:
000000000001a294 T of_release_codec_instance
如何解决此问题?
答案 0 :(得分:2)
我(最后!!)提到了FFMpeg邮件列表中的解决方案:http://ffmpeg.org/faq.html#I_0027m-using-FFmpeg-from-within-my-C_002b_002b-application-but-the-linker-complains-about-missing-symbols-which-seem-to-be-available_002e
引用:“FFmpeg是一个纯C项目,所以要使用C ++应用程序中的库,你需要明确声明你正在使用C库。你可以通过包含你的FFmpeg包括使用extern”C“来实现。 “
我将同样的解决方案应用于我的FFMpeg问题到OpenFEC库问题。