Я разрабатываю проект C++, который использует библиотеку ZeroMQ для связи с Python и MetaTrader 4 (MT4). Я настраиваю свою среду разработки в Windows, используя VSCode и MinGW-w64 в качестве компилятора.
Шаги, которые я предпринял на данный момент:
< сильный>1. Клонирование репозитория cppzmq:
Я разрабатываю проект C++, который использует библиотеку ZeroMQ для связи с Python и MetaTrader 4 (MT4). Я настраиваю свою среду разработки в Windows, используя VSCode и MinGW-w64 в качестве компилятора. Шаги, которые я предпринял на данный момент: < сильный>1. Клонирование репозитория cppzmq: [code]git clone https://github.com/zeromq/cppzmq.git [/code] [b]2. Создание каталога для включаемых файлов ZeroMQ:[/b] [code]mkdir C:\ZeroMQ\include\cppzmq [/code] [b]3.Копирование файла zmq.hpp в каталог Include:[/b] [code]Copy-Item "C:\Users\Leonardo Alves\Desktop\Python Projects\project_socket\cppzmq\zmq.hpp" "C:\ZeroMQ\include\cppzmq\" [/code] [b]4.Настройка Tasks.json в VSCode:[/b] [code]{ "version": "2.0.0", "tasks": [ { "label": "Build DLL (Debug)", "type": "shell", "command": "g++", "args": [ "-shared", "-o", "output/mq4socket.dll", "mq4socket.cpp", "-I", "C:/ZeroMQ/include", "-L", "C:/ZeroMQ/lib", "-lzmq", "-g" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] }, { "label": "Build Test App (Debug)", "type": "shell", "command": "g++", "args": [ "-o", "output/test_app.exe", "test_app.cpp", "-I", "C:/ZeroMQ/include", "-L", "C:/ZeroMQ/lib", "-lzmq", "-g" ], "group": { "kind": "build", "isDefault": false }, "problemMatcher": ["$gcc"] } ] }
[/code] [b]5. Настройка c_cpp_properties.json в VSCode:[/b] [code]{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:/ZeroMQ/include" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "compilerPath": "C:/mingw64/bin/g++.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 } [/code] [b]Проблемы:[/b] При попытке скомпилировать код mq4socket.cpp я получаю следующую ошибку: [code]c:\Users\Leonardo Alves\Desktop\Python Projects\project_socket\mq4socket.cpp:3:10: fatal error: zmq.hpp: No such file or directory 3 | #include | ^~~~~~~~~ compilation terminated.
[/code] [b]Что я проверил:[/b] [list] [*]Файл zmq.hpp присутствует по адресу C:\ZeroMQ\include\cppzmq\zmq.hpp. [*]Пути включения и библиотеки в файле Tasks.json кажутся правильными. [*] Библиотеки ZeroMQ присутствуют в C:\ZeroMQ\lib. [/list] [b]Вопросы:[/b] [list] [*]Как устранить ошибку, из-за которой zmq.hpp не обнаруживается во время компиляции? [*]Следует ли мне изменить путь включения или способ включения zmq.hpp в мой код? [*]Есть ли какие-либо другие конфигурации, которые мне следует проверить, чтобы компилятор мог найти файлы заголовков и библиотеки ZeroMQ? [/list] [b]Соответствующий фрагмент моего кода (mq4socket.cpp):[/b] [code]#include [/code] [b]Текущая конфигурация Tasks.json:[/b] [code]{ "version": "2.0.0", "tasks": [ { "label": "Build DLL (Debug)", "type": "shell", "command": "g++", "args": [ "-shared", "-o", "output/mq4socket.dll", "mq4socket.cpp", "-I", "C:/ZeroMQ/include", "-L", "C:/ZeroMQ/lib", "-lzmq", "-g" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] }, { "label": "Build Test App (Debug)", "type": "shell", "command": "g++", "args": [ "-o", "output/test_app.exe", "test_app.cpp", "-I", "C:/ZeroMQ/include", "-L", "C:/ZeroMQ/lib", "-lzmq", "-g" ], "group": { "kind": "build", "isDefault": false }, "problemMatcher": ["$gcc"] } ] }
Мой вопрос связан с этим: Не удалось установить библиотеку шифрования Python с помощью pip на msys2/mingw
В этом вопросе установка шифрования pip не удалась, но pacman -S mingw -w64-x86_64-python3-cryptography установлен успешно.
Есть еще один...
Я выбрал модель потоков Win32 при установке набора инструментов MinGW-w64, после того как прочитал, что она обеспечивает лучшую производительность, чем аналог POSIX. Я сам не уполномочен оценивать это утверждение, но вот источник.
Сначала я думал,...
Я тестирую монитор событий, написанный на Python для ZeroMQ. Я хотел бы проверить свой обратный вызов для события zmq.EVENT_HANDSHAKE_FAILED_PROTOCOL. Каков самый простой способ вызвать это событие? Причина, по которой он срабатывает, или значение...
Я тестирую монитор событий, написанный на Python для ZeroMQ. Я хотел бы проверить свой обратный вызов для события zmq.EVENT_HANDSHAKE_FAILED_PROTOCOL. Каков самый простой способ вызвать это событие? Причина, по которой он срабатывает, или значение...
Я тестирую монитор событий, написанный на Python для ZeroMQ. Я хотел бы проверить свой обратный вызов для события zmq.EVENT_HANDSHAKE_FAILED_PROTOCOL. Каков самый простой способ вызвать это событие? Причина, по которой он срабатывает, или значение...