AVIFileInit() 中的分段错误

Segmentation fault in AVIFileInit()

本文关键字:分段 错误 AVIFileInit      更新时间:2023-10-16

我目前正在XP上使用Code::Blocks和GCC编译器。在以下测试代码中调用 AVIFileInit() 会导致分段错误:

#include <windows.h>
#include <stdio.h>
#include <vfw.h>
int main() {
   printf("%s", "AVI Init...nn");
   AVIFileInit(); /// <-- Crashes here!!!
   printf("%s", "AVI Exit...nn");
   AVIFileExit();
   printf("%s", "return...nn");
   return 0;
}

我找不到此问题的任何原因或解决方案。任何帮助将不胜感激。

好吧,我终于解决了这个问题,所以对于其他有类似问题的人,我想我会发布我的答案:

链接器设置中省略文件名中的".lib"。(在这种情况下,请写"VFW32",而不是"VFW32。图书馆"。

这样,它

就不会抱怨找不到该文件,因此您不必浪费大量时间在安装文件夹中查找它,然后放弃并最终链接到该编译器未附带的另一个版本的库,并且实际上不兼容。