0

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

#include <windows.h>
#include <stdio.h>
#include <vfw.h>

int main() {
   printf("%s", "AVI Init...\n\n");

   AVIFileInit(); /// <-- Crashes here!!!

   printf("%s", "AVI Exit...\n\n");

   AVIFileExit();

   printf("%s", "return...\n\n");

   return 0;
}

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

4

1 回答 1

0

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

在链接器设置的文件名中省略“.lib”。(在这种情况下,写“VFW32”,而不是“VFW32.LIB”。)

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

于 2016-12-06T03:38:22.907 回答