Встраивание Julia в C++ с помощью Visual Studio

Я пытаюсь встроить Julia v1.4.2 в простое консольное приложение C++, созданное с использованием Visual Studio 2017 v15.0. Я слежу за официальной документацией на https://docs.julialang.org/en/v1/manual/embedding/. Однако при вводе#include <julia.h>VS взрывается серией из более чем 25 ошибок, таких как:

идентификатор "PCONTEXT" не определен в errhandlingapi.h

идентификатор "PCONTEXT" не определен в WinBase.h

идентификатор "PSLIST_HEADER" не определен в WinBase.h

...

1 ответ

Решение

Отвечая на свой вопрос здесь, я нашел решение. Оказывается<uv.h> - который является частью Julia - должен быть включен перед <windows.h>.

Это так, потому что uv.h включает uv/win.h, который включает winsock2.h. Winsock2.h защищает от включения winsock.h, который включен в windows.h. Но если сначала включен windows.h и, следовательно, winsock.h, то winsock2.h попытается переопределить все в winsock.h, что приведет к появлению ряда ошибок.

Другие вопросы по тегам