我正在玩libav *。我写了一个简单的程序来打开一个文件并输出它中有多少个流,这些东西让我的脚湿透了。我链接avformat,avcodec和avutil。但是,我从ld得到未定义的引用错误。未定义的引用都是libav *函数。我看了一下详细的链接器输出,看到它与正确的库链接,我使用objdump确认符号位于库中,但是ld仍然会抛出未定义的引用错误。
答案 0 :(得分:2)
你是用C ++编程的吗?如果是这种情况,则需要添加“extern”C“{...};”。
看看这里:Why do we need extern "C"{ #include <foo.h> } in C++? 并注意libav *是用C语言编写的。