1

我尝试将 Julia v1.4.2 嵌入到使用 Visual Studio 2017 v15.0 构建的简单 C++ 控制台应用程序中。我遵循https://docs.julialang.org/en/v1/manual/embedding/#High-Level-Embedding-on-Windows-with-Visual-Studio-1上的官方文档。但是,当键入 #include <julia.h> VS 时会出现一系列 25+ 错误,例如:

errhandlingapi.h 中未定义标识符“PCONTEXT”

WinBase.h 中未定义标识符“PCONTEXT”

WinBase.h 中未定义标识符“PSLIST_HEADER”

...

4

1 回答 1

5

当我找到解决方案时,在这里回答我自己的问题。原来<uv.h>- 这是 Julia 的一部分 - 必须包含在之前<windows.h>

之所以如此,是因为 uv.h 包含 uv/win.h,而 uv/win.h 又包含 winsock2.h。而winsock2.h 防止包含windows.h 中包含的winsock.h。但是,如果首先包含 windows.h 并因此包含 winsock.h,则 winsock2.h 将尝试重新定义 winsock.h 中的所有内容,从而导致一连串错误。

于 2020-07-09T20:10:36.857 回答