Gcc ‘;未定义对xxxxx’;的引用';检查目录中的文件';它不起作用

Gcc ‘;未定义对xxxxx’;的引用';检查目录中的文件';它不起作用,gcc,ffmpeg,Gcc,Ffmpeg,大家圣诞快乐 我正在用gcc编写ffmpeg 但是,在构建过程中,对于我在程序中编写的所有函数,我都遇到了“未定义对xxxxx的引用”的错误,我认识到这是由于libxxx.a文件引起的 互联网上的每一位顾问都建议检查目录中的文件 因此,我在计算机中搜索了包含函数名的文件,发现.a文件在我编码的目录中设置正确 还有其他名为“libxxx.dll.a”的文件,所以我尝试使用文件“libxxx.dll.a”进行构建,但得到了相同的结果 关于这一点,我有一些问题 1) 如果gcc找不到libxxx.a文

大家圣诞快乐

我正在用gcc编写ffmpeg

但是,在构建过程中,对于我在程序中编写的所有函数,我都遇到了“未定义对xxxxx的引用”的错误,我认识到这是由于libxxx.a文件引起的

互联网上的每一位顾问都建议检查目录中的文件

因此,我在计算机中搜索了包含函数名的文件,发现.a文件在我编码的目录中设置正确

还有其他名为“libxxx.dll.a”的文件,所以我尝试使用文件“libxxx.dll.a”进行构建,但得到了相同的结果

关于这一点,我有一些问题

1) 如果gcc找不到libxxx.a文件,它会说“找不到–lxxx”。但它只是说“未定义对xxxx的引用”。这意味着这些libxxx.a文件位于正确的目录中

2) 如果文件没有定义函数,那就很奇怪了。因为这些文件包含函数名,并且与我在计算机中搜索的文件/目录相同,我认为应该有函数的定义。但我不确定文件是否定义了函数,因为我自己无法读取文件

如果我错了,我的错是什么

3) 可以用libxxx.a替换libxxlib.a文件吗?如果可以,libxxxlib.a和libxxx.a之间有什么区别?libz和libzlib?a也一样

这是我的行目录,其中包括libxxx.a文件

g++-o C:\ffmpeg\ffmpegTest C:\ffmpeg\ffmpegTest.cc-IC:\ffmpeg-LC:\ffmpeg\3rdparty\lib-lavutil-lavformat-lavcodec-lz-lavutil-lm-D_ustdc\u常量\u宏

C:\ffmpeg\3rdparty\lib

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“av_register_all()”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“av_open_input_file(AVFormatContext*、char const、AVInputFormat*、int、AVFormatParameters*”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“av\u find\u stream\u info(AVFormatContext*)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“dump_格式(AVFormatContext,int,char const*,int)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“avcodec\u find\u decoder(CodecID)”的未定义引用

所有的错误都是

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“avcodec\u open(AVCodecContext*,avcodec)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“avcodec\u alloc\u frame()”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“avcodec\u alloc\u frame()”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“avpicture\u get\u size(像素格式,int,int)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“av_malloc(unsigned int)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“avpicture\u fill(avpicture*,unsigned char*,PixelFormat,int,int)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::未定义对“avcodec\u decode\u video2(AVCodecContext,AVFrame*,int,AVPacket*)”的引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“sws_getContext(int,int,PixelFormat,int,int,int,int,PixelFormat,int,SwsFilter*,SwsFilter*,double const*)的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“sws_刻度(SwsContext*、无符号字符常量*常量*、int常量*、int、int、无符号字符*常量*、int常量*)的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“av_free_数据包(AVPacket*)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“av\u读取帧(AVFormatContext,AVPacket*)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“av_free(void*)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::对“avcodec\u close(AVCodecContext*)”的未定义引用

C:\Users\AppData\Local\Temp\ccVHLzjK.o:ffmpegTest.cc::未定义对“av\u close\u input\u file(AVFormatContext)”的引用

您应该发布准确的错误消息(或至少是它的前几行)

最有可能的是你是一个受害者

对…
的未定义引用几乎肯定与任何丢失的文件无关