GOBJECT:未解析的外部符号 ___chkstk_ms

GOBJECT : unresolved externals symbol ___chkstk_ms

在 Visual Studio 中编译 GOBJECT 时,我遇到了以下两个 错误:

Error   5   error LNK1120: 1 unresolved externals   C:\gtk_compilation\glib\glib-2.46.0\build\win32\vs12\Debug\Win32\bin\gobject-2-vs12.dll gobject
Error   4   error LNK2019: unresolved external symbol ___chkstk_ms referenced in function _ffi_call C:\gtk_compilation\glib\glib-2.46.0\build\win32\vs12\libffi.lib(ffi.o)  gobject

我使用 here 中描述的过程重新编译了 libffi,但是 ./configure 的额外标志如下所示。

cflags="-fno-stack-check -fno-stack-protector -mno-stack-arg-probe"

我希望它能摆脱 ___chkstk_ms 调用。

在libffi的makemake install之后,我将libffi.a重命名为libffi.lib,将libffi.dll.a重命名为libffi.dll并复制到适当的目录。

然后我在visual studio中重新构建gobject项目,我得到了同样的错误 我在开头提到过。 :(

编辑:

由此post,我猜问题的根源是我使用了两个编译器。但我看不到解决它的方法。我试着编译 libffi 使用 Visual Studio 项目可用,但需要数小时的努力 都是徒劳的。

我使用在 Github project.

中找到的 Libffi 的 MSVC 版本解决了这个问题

但是,您需要将行#606 从

sizet z = (*p_arg)->size;

unsigned long long  z = (*p_arg)->size;

因为 typedef 不是(出于某种原因在这里有效)。