尽管在OpenFEC库中进行了链接,但未定义引用
Undefined reference despite linking in OpenFEC-library
当我在代码中引用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库中。
命令nm ../openfeclib/libopenfec.so | grep of_release_codec
给出:
000000000001a294 T of_release_codec_instance
如何解决此问题?
我(终于!!)在FFMpeg邮件列表中提到了解决方案:http://ffmpeg.org/faq.html#I_0027m-使用-FFmpeg-from-within-my-C_002b-002b-应用程序-链接器抱怨-关于使用符号-似乎可用_002e
引用:"FFmpeg是一个纯C项目,因此要在C++应用程序中使用库,您需要明确声明您正在使用C库。您可以通过使用extern"C"包含FFmpeg includes来实现这一点。"
我将同样的解决方案应用于我的FFMpeg问题和OpenFEC库问题。
相关文章:
- 链接 cmake 时出现未定义的引用错误
- 链接器错误:未定义对"Reference_Genome::seq[abi:cxx11]"的引用
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 对GLFW / Vulkan的未定义引用,尽管库似乎是链接的
- ld 链接器错误,未定义对主函数的引用
- 与共享库链接时未定义的引用
- 链接提升 - 未定义对"提升::序列化::singleton_module::get_lock()"的引用
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 如何在 Linux 中构建共享库时使未定义引用的链接器失败
- C++ 为什么在定义的编译和链接之前引用外部实例的程序
- 引用构造函数时链接失败
- CMake 不链接 C 和 C++ 静态库(未定义对函数的引用)
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- 使用Cygwin C++时出现未定义的引用错误,为什么我的文件没有链接?
- 链接器错误:在包含 .so lib 后未定义对 xxx 的引用
- 未定义的引用,即使库正在链接并且它包含正确的符号
- C++ 链接器错误 LNK 2019 函数中引用的未解析的外部符号
- boost::存在符号链接不取消引用
- 链接时突然收到maxrregcount警告和未定义的引用错误
- 与 libavcodec 链接,仍然看到未定义的引用