【问题标题】:Embedding Julia in C++ using Visual Studio使用 Visual Studio 在 C++ 中嵌入 Julia
【发布时间】:2020-07-09 13:04:32
【问题描述】:

我尝试将 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”

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

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

...

【问题讨论】:

  • 尝试在<julia.h>之前包含其他标题,例如<windows.h>
  • 谢谢 - 但也没有运气
  • 似乎所有这些与 win 相关的标头都包含在 Julia 中使用的 uv-library 中,并在 julia.h 中引用

标签: c++ windows julia embedding


【解决方案1】:

在我找到解决方案时在这里回答我自己的问题。 原来<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 中的所有内容,从而导致一串错误。

【讨论】:

    猜你喜欢
    • 2016-06-29
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多