Встраивание 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, что приведет к появлению ряда ошибок.