Rabbitmq что это 1с
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
⚡ В БИТ:ERP открыты вакансии разработчиков 1С, присоединяйся к нашей команде!
Внешняя Native API компонента для 1C 8.3, которая реализует методы для работы с сервером Rabbit MQ через TCP IP протокол. Компонента поддерживается командой разработки БИТ.MDT (Мобильный терминал данных), БИТ.Адаптер, БИТ.IIoT (Промышленный интернет вещей) и используется в наших продуктах. Ид компоненты - PinkRabbitMQ. Компонента поставляется для 32 и 64 битной платформы 1С.
Компонента реализует протокол AMQP 0.9.1. Компонента имеет ряд методов для работы из встроенного языка 1С. Параметры с тегом [НЕ РЕАЛИЗОВАНО] имеют пустую реализацию, но передавать их все равно требуется. Параметры с тегом [НЕОБЯЗАТЕЛЬНЫЙ] можно не передавать.
- correlationId - строка, чтение и запись
- messageId - строка, чтение и запись
- Type - строка, чтение и запись
- AppId - строка, чтение и запись
- ContentEncoding - строка, чтение и запись
- ContentType - строка, чтение и запись
- UserId - строка, чтение и запись. В данное свойство разрешается передавать только логин пользователя, использованный для установки соединения
- ClusterId - строка, чтение и запись
- Expiration - число строкой, чтение и запись. Передача строки, отличной от числовой, приведет к вызову исключения.
- ReplyTo - строка, чтение и запись
Список прочих свойств:
Connect - устанавливает соединение с сервером RabbitMQ. Таймаут - 5 секунд. Если в течение этого времени сервер недоступен, а также указаны неверные логин, пароль или vhost, то будет возвращена ошибка, которая может быть получена через метод GetLastError.
- host - Строка - Адрес сервера RabbitMQ
- port - Число - Порт работы через tcp (обычно 5672 для amqp и 5671 для amqps)
- login - Строка - Имя пользователя
- pwd - Строка - Пароль пользователя
- vhost - Строка - Vhost пользователя
- pingRate - Число - [НЕ РЕАЛИЗОВАНО][НЕОБЯЗАТЕЛЬНЫЙ]. Частота пульса
- secure - Булево - [НЕОБЯЗАТЕЛЬНЫЙ] использовать защищенное соединение по протоколу TLS 1.2. По-умолчанию Ложь. Если Истина, то нужно также передавать соответствующий порт для amqps соединения
- timeout - Число - [НЕОБЯЗАТЕЛЬНЫЙ] время ожидания ответа на команды от сервера в секундах. По-умолчанию 5
DeclareExchange - Объявить точку обмена
DeleteExchange - Удалить точку обмена
- name - Строка- Имя точки обмена.
- ifunused - Булево - Удаление будет выполнено, только если точка обмена не используется.
DeclareQueue - Объявить очередь
DeleteQueue - Удаляет очередь с сервера
- name - Строка - Имя очереди
- onlyIfIdle - Булево - Удаление будет выполнено, только если очередь не используется
- onlyIfEmpty - Булево - Удаление будет выполнено, только если очередь пуста
BindQueue - Установить связь очереди. Создает маршрут от точки обмена до очереди.
- queue - Строка - Имя очереди
- exchange - Строка - Имя точки обмена
- routingKey - Строка - Rлюч маршрутизации.
- arguments - Строка - [НЕОБЯЗАТЕЛЬНЫЙ] произвольные свойства в формате Json-объект. Пример: .
UnbindQueue - Отсоединяет очередь от точки обмена.
- queue - Строка - Имя очереди
- exchange - Строка - Имя точки обмена
- routingKey - Строка - Rлюч маршрутизации.
- Строка. Имя потребителя, сгенерированное сервером или переданное в параметре ИмяПотребителя.
- channelId - Строка - Имя созданного ранее потребителя.
- priority - Число - значение в диапазоне разрешенного приоритета для очереди, но не более 255.
GetLastError - получает информацию о последней ошибке
SleepNative - останавилвает выполнение программы на указанное время
- timeout - число - время остановки в милисекундах
Правила работы с компонентой из 1С
- Завершать работу с компонентой посредством обнуления объекта компоненты. Например:
- Все выходные параметры в методах компоненты передавать как Неопределено или пустая строка, а также обнулять возвращенные значения. Несоблюдение этого простого правила приводит к огромным утечкам памяти. Например:
- На сервере все исключения компоненты обрабратывать через Попытку . Иключение с вызовом в секциии исключения метода GetLastError() для получения истинной детальной ошибки. Пример
Подключение внешней компоненты на клиенте
Создание точки обмена, очереди и их связывание на клиенте
Установка в конфигурацию
Разворачивание окружения разработки на Windows 10 (Рекомендуется)
Вместе с проектом поставляются заранее скомпилированные зависимости в папке libsPrecompiled для 32 и 64 битных платформ в вариантах debug и release. Поэтому для создания окружения разработки нужно сделать только следующее:
Разворачивание окружения разработки на Windows 10 и самостоятельная компиляция всех зависимостей (Не рекомендуется)
Порядок изложенный ниже требуется, если нужно с нуля собрать весь проект и скомпилировать все зависимые билиотеки. Если это не требуется, то рекомендуется следовать простому порядку разворачивания окружения, приведенному выше.
Для компиляции 64-битной release версии либы
- Открыть файл проекта amqpcpp.sln
- Выбрать свойства проекта amqcpp => C/C++ => Code generation => Runtime library => Multi-threaded (/MT)
- Скомпилировать проект Release
Для компиляции 32-битной release версии либы
Нужно создать свой проект с нуля на базе проекта 64-битной компоненты, сгенерированного через cmake
Часто 1С не может взаимодействовать со сторонними продуктами, например для шины предприятия RabbitMQ создают внешние компоненты. В статье предлагается новомодный подход REST API реализованный на приложении прокладке Middleware, язык тоже трендовый Golang. В статье немного познакомлю Вас с языком Golang, опишу интеграцию на стороне 1С (8.3.16.1502). Если статья зайдет, напишу как выгружать журнал регистрации по этой схеме в ElasticSearch
Предыдущие и будущие статьи:
Я не буду вдаваться в подробности установки RabbitMQ, в статье используется Docker контейнер с официального сайта для экспериментов, устанавливается просто:
В качестве модели данных будем использовать Клиента, с полями: ID, Name, Type и Email данную структуру мы будем забирать из шины и помещать в очередь. Данные будут переобразованны в JSON.
Для REST API создадим обработчик exchange_rabbitmq, который будет принимать GET и POST запросы.
Для метода POST получает JSON строку с массивом структур, полученные данные помещаем в шину. Для метода GET получаем данные из шины и передаем их на сторону 1С.
В 1С создадим внешнюю обработку с таблицей, в которую для метода GET будут поступать записи, а для метода POST из таблицы данные будут поступать в шину, как уже говорилось ранее через JSON
Помещаем в шину
Потребляем из шины
Для middleware предусмотрена возможность сохранять настройки подключения к шине
В крации внутри middleware создается метод обрабатывающий запросы на адрес "/rabbitMQ_1C", в зависимости от метода происходит или отправка или потребление, для наглядности поазываю урезанную функцию
Внутри middleware разварачивается по сути небольшой веб-сервис обрабатывающий запросы, своего рода микросервис, в следующих статьях я расскажу как поместить его в Докер контейнр, а также разместить этот контейнер в Докер Хаб
Исходники я разместил на GitHub. Можете использовать исходник как шаблон, жду ваших идей и советов. Ни на что не претендую интересная тема, решил поделиться с сообществом своими наработками. Есть наработки по выгрузке журнала регистраций в ElasticSearch возможно дополню проект новым обработчиком для этого дела.
Схема выгрузки объектов из базы – источника
1. Для регистрации объектов, подлежащих выгрузки, используем План обмена; собственно, регистрация производится по какому-либо правилу бизнес-процесса, например, при сохранении изменения объекта 1С.
2. Инициализацию выгрузки объектов поручим регламентному заданию; в его обработчике:
2.1. формируем единый для всей выгрузки объектов xdto-контейнер;
2.2. начинаем транзакцию (помимо своей основной функции, она понадобится для снятия управляемых блокировок);
2.3. для каждого вида объекта метаданных вызываем свои процедуры выгрузки объектов, в которых:
2.3.1. из Плана обмена читаем объекты, подлежащие выгрузке;
2.3.2. устанавливаем на эти объекты управляемую блокировку;
2.3.3. на основании xdto-пакета преобразуем объект 1С в объект xdto;
2.3.4. добавляем xdto-объект в единый xdto-контейнер;
2.4. Полученный xdto-контейнер сериализуем в JSON-строку;
2.6. Для выгруженных объектов 1С снимаем регистрацию в Плане обмена;
2.7. Фиксируем транзакцию и снимаем управляемые блокировки.
Если объем выгружаемой информации велик, а база активно используется пользователями, то следует позаботиться об уменьшении времени управляемых блокировок. Идти можно следующими путями:
- локализовать транзакции до выгрузки отдельных видов объектов метаданных;
- разделить выгрузку отдельных видов метаданных на порции, например, по 100 объектов;
- отдельно для каждой такой порции устанавливать транзакции и блокировки.
Схема выгрузки объектов из базы источника
Схема загрузки объектов в базе – приемнике
Схема загрузки объектов в базу-приемник
1. За инициализацию загрузки объектов отвечает Регламентное задание; в его обработчике:
1.3.1. На основании xdto-пакетов преобразуем JSON-строки в xdto-объекты;
1.3.2. Преобразуем xdto-объекты в объекты 1С;
1.3.3. Сохраняем объекты 1С в базе 1С.
Результатом является запись в базе-приемнике объектов 1С переданных из баз-источников.
Специальные предложения
(5) При помощи человека, знающего что нужно регистрировать. Система обмена данными - не замена система бэкапирования и/или архивации.
Просмотры 2539
Загрузки 0
Рейтинг 10
Создание 12.02.21 12:45
Обновление 12.02.21 12:45
№ Публикации 1383113
Тип файла Нет файла
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Да
См. также
Обмен данными. Консистентность vs Многопоточность Промо
Рассмотрим теоретические основы обмена данными. Какие бывают обмены, какие гарантии при этом даются, зачем идти на компромиссы и что при этом может пойти не так. Есть ли идеальная схема?
03.09.2019 16305 m-rv 2
Переход с УПП на ERP с сохранением документов. Фантастика или реальность?
В последнее время задача перехода с УПП становится все более актуальной. Причина – ожидаемое снятие УПП с поддержки и более продвинутые возможности последних версий конфигураций 1С. О том, какие методики переноса данных из УПП в ERP можно применить, и как в автоматическом режиме убедиться, что все перенеслось корректно, на конференции Infostart Event 2021 Moscow Premiere рассказал Сергей Сорокин.
28.04.2022 686 primat 0
Выполнение синхронизации (обмен) по событию 1С (двусторонний обмен)
Выполнить синхронизацию(обмен) с другой базой 1С по событию в 1С (проведение документа). Запустить синхронизацию из другой базы 1С.
16.11.2021 2092 Swamt 0
Что делать, когда обмены между разными базами данных портят вам жизнь…
10.09.2021 2050 director04 9
Выгрузка документа по условию Промо
Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.
25.04.2019 18348 m-rv 4
Описание формата 1С JDTO (JSON data transfer object)
Формат 1С JDTO может быть полезен для интеграции информационных баз 1С между собой, а также 1С с внешними системами. Публикация имеет своей целью помочь в освоении этого формата для обмена данными.
16.07.2021 7937 zhichkin 32
Распределенные алгоритмы РИБ 1С
Небольшое исследование на тему применимости классических распределённых алгоритмов репликации и синхронизации данных между узлами обмена РИБ 1С.
02.07.2021 1527 zhichkin 1
Особенности online-обмена между старыми и новыми типовыми
Столкнулся с неприятной особенностью потери части данных при обмене УСО (УПП) - ДО.
01.06.2021 3607 echo77 9
Повышаем эффективность разработки правил обмена Промо
Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.
25.06.2018 30841 olegtymko 48
Добавление нового документа в формат обмена EnterpriseData (получение)
Данная статья - логическое продолжение (ссылка на первую часть ниже) доработки обмена, но уже на стороне базы приемника.
27.04.2021 1657 con-men 2
Добавление нового документа в формат обмена EnterpriseData (отправка)
Для меня встала задача добавить новый документ, созданный в расширении, в формат обмена EnterpriseData, между БП - УНФ. Изначальный поиск решения не дал результата. Методом проб и ошибок у меня сформировалось свое решение, которым спешу поделиться, чтобы систематизировать информацию в текст и услышать плюсы, минусы подхода. Все доработки осуществляются в расширении, в котором и был создан новый документ.
21.04.2021 3363 con-men 7
Правила обмена больше не нужны
Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.
17.03.2021 14907 Nikola23 40
Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть І: Справочники Промо
Сейчас все чаще интеграции различных конфигураций проектируются через HTTP-сервисы - они и работают быстрее, и "войти" в режим отладки гораздо проще, тем самым обойдя "черный ящик" универсального обмена через xml, например. Более года назад я начал работать в компании, в которой разработчики работали с конфигурациями 1С в режиме совместимости еще 8.2.16 (менять режим совместимости в типичных базах мы не хотели) - а как Вы наверное знаете, если интересовались HTTP-сервисами в 1С, их использование в режиме совместимости 8.3.4 и ниже недопустимо - и здесь я уже не надеялся на разработку и использование HTTP-сервисов. Но позже меня заинтересовал такой "сервис" как REST интерфейс OData, так как его можно использовать не меняя режим совместимости конфигурации - именно он и стал для меня идеальным вариантом решения "нетривиальных" задач.
Интеграция 1С с любыми системами: другими программами 1С, сайтом, банками, CRM, сторонними программами.
Всегда актуальная информация на сайте. Интеграция с любыми CMS: Битрикс, UMI, WordPress, Joomla, Drupal, Tilda и другие.
Понятия «правильной интеграции» в отрыве от конкретной ситуации просто не существует, поэтому от этого определений лучше отказаться и заменить его интеграцией событийной – эффективной интеграцией, удовлетворяющей требования отдельно взятого проекта. Мы рассмотрим инструменты крупных интеграционных проектов, где требовался регулярный обмен большим количеством информации. Именно такие проекты ставят перед интеграторами самые сложные задачи, а как их решить – проиллюстрируем на реальном примере.
Инструменты интеграции
Рассмотрим популярнейшие инструменты интеграции на «эволюционной» шкале, отображающей тот порядок, как их осваивают программисты-разработчики.
Рис.1 Эволюция
XLS, CSV
Простейший вариант для несложных интеграций, например, для загрузки табличного документа. Структуру данный формат не поддерживает, в файле может быть только одна таблица или только одна вкладка, а о том, что нельзя настроить связи между несколькими таблицами, даже упоминать не стоит. По этим причинам настраивать интеграцию посредством XLS, CSV придется каждый раз как в первый: один документ-Excel загрузился, но следующий будет иметь другую структуру или даже другой формат (xls, xlsx; csv – может «возникнуть» запятая, точка с запятой или табуляция), поэтому предыдущая настройка не сработает.
COM-коннектор
У данного инструмента интеграции серьезный минус – он разработан под Windows. Когда технологии Linux захватывают все большие объемы рынка, а серверов на Windows становится все меньше (остаются по большому счету только терминальные), W-интеграции все менее применимы на проектах.
Помимо этого COM-коннектор дает «полную свободу действий». Этому радуются разработчики, но не жалуют представители служб безопасности, поскольку 1С не поддерживает передачу хэша при передаче пароля и ком-коннектор передает его в открытом виде.
XML и JSON
Данный инструмент можно назвать продвинутым: поддерживается структура, передаются массивы, штатные функции. Но работа с XML и JSON подразумевает работу с простыми файлами, выгрузка которых при постоянной интеграции требует транспорта, протокола, инфраструктуры и т.д. То есть их нужно версионировать, передать, убедиться, что файл ушел и принимающая система его загрузила… Поэтому любая ошибка здесь чревата потерями и расхождениями данных.
Конвертация 2.0, 2.1
Подходящий механизм для постановки интеграции в масштабах проекта, поддерживающий обмены по расписанию, настройки, правила регистрации и т.д. Но как раз в обмене по расписанию и заложены определенные ограничения: если обмен происходит, например, один раз в секунду, то система будет перегружена, если один раз в 20 минут – возникают проблемы с актуальностью. Также работа с данными при таком обмене чревата возникновением коллизий.
Но это еще не все. Даже задав правила конвертации и выгрузки, проставив реквизиты, можно столкнуться с проблемой логирования и отладки на вкладке «Алгоритмы», которая представляет собой, по сути, массивные куски кода. Если выгрузка происходит, но как-то не так, нужно отлаживать конвертацию. При этом искать ошибку в гигабайтном xml-файле, когда регистрация уже потерта, потому что бизнесу надо работать, – все равно что искать иголку в стоге сена.
Решением этих проблем может стать интеграционная шина.
Событийная интеграция и интеграционная шина
Основной плюс данной технологии – возможность настроить интеграцию единожды благодаря шине-посреднику.
Отметим, что интеграционную шину часто запускают совместно с проектами по MDM, поскольку организовать единую систему, которая управляет десятком других систем, без интеграционной шины фактически невозможно.
Архитектура и инструментарий
Рассмотрим «плохой» пример проекта, где стояла задача интеграции с внешним сервисом в Интернете, который должен был заносить данные в базу 1С. Задача распространенная, так как подобные сервисы становятся все популярнее.
Почему пример «плохой»? Подобная схема может работать даже на крупных проектах, но назвать ее оптимальной нельзя.
Рассмотрим «хороший» пример:
Рис.3 Интеграция
Поподробнее рассмотрим, почему именно эти инструменты стоит использовать.
MuleESB
Рис.4 Инструменты
Mule ESB имеет OpenSource-версию, что определенно является преимуществом. Enterprise-версия, которая при необходимости кластеризуется, имеет удобный веб-интерфейс. В MarketPlace для MuleESB найдется интеграция с огромным количеством разных систем, что может упростить работу в десятки раз.
RabbitMQ
RabbitMQ обладает функциональным веб-интерфейсом, позволяет динамически добавлять очереди, проводить мониторинг, кластеризуется, а также поддерживает стабильную, быструю работу.
Elastic
SoapUI – удобный инструмент отладки Soap-запросов и не только, с возможностью чтения SDL и их отладки. Позволяет сделать Soap-сервер и отладить его, сделав в SoapUI заглушку в SDL.
Enterprise Data – данный инструмент приближает 1С к принципам событийной интеграции.
Механизм Incorporate предусматривает использование интеграционной шины, причем не только для внешней интеграции. Для типовых прикладных решений, в которых Enterprise Data уже встроена, такая схема интеграции упростит процесс в несколько десятков раз, несмотря на значительное количество проблемных моментов.
⚡ В БИТ:ERP открыты вакансии разработчиков 1С, присоединяйся к нашей команде!
Внешняя Native API компонента для 1C 8.3, которая реализует методы для работы с сервером Rabbit MQ через TCP IP протокол. Компонента поддерживается командой разработки БИТ.MDT (Мобильный терминал данных), БИТ.Адаптер, БИТ.IIoT (Промышленный интернет вещей) и используется в наших продуктах. Ид компоненты - PinkRabbitMQ. Компонента поставляется для 32 и 64 битной платформы 1С.
Компонента реализует протокол AMQP 0.9.1. Компонента имеет ряд методов для работы из встроенного языка 1С. Параметры с тегом [НЕ РЕАЛИЗОВАНО] имеют пустую реализацию, но передавать их все равно требуется. Параметры с тегом [НЕОБЯЗАТЕЛЬНЫЙ] можно не передавать.
- correlationId - строка, чтение и запись
- messageId - строка, чтение и запись
- Type - строка, чтение и запись
- AppId - строка, чтение и запись
- ContentEncoding - строка, чтение и запись
- ContentType - строка, чтение и запись
- UserId - строка, чтение и запись. В данное свойство разрешается передавать только логин пользователя, использованный для установки соединения
- ClusterId - строка, чтение и запись
- Expiration - число строкой, чтение и запись. Передача строки, отличной от числовой, приведет к вызову исключения.
- ReplyTo - строка, чтение и запись
Список прочих свойств:
Connect - устанавливает соединение с сервером RabbitMQ. Таймаут - 5 секунд. Если в течение этого времени сервер недоступен, а также указаны неверные логин, пароль или vhost, то будет возвращена ошибка, которая может быть получена через метод GetLastError.
- host - Строка - Адрес сервера RabbitMQ
- port - Число - Порт работы через tcp (обычно 5672 для amqp и 5671 для amqps)
- login - Строка - Имя пользователя
- pwd - Строка - Пароль пользователя
- vhost - Строка - Vhost пользователя
- pingRate - Число - [НЕ РЕАЛИЗОВАНО][НЕОБЯЗАТЕЛЬНЫЙ]. Частота пульса
- secure - Булево - [НЕОБЯЗАТЕЛЬНЫЙ] использовать защищенное соединение по протоколу TLS 1.2. По-умолчанию Ложь. Если Истина, то нужно также передавать соответствующий порт для amqps соединения
- timeout - Число - [НЕОБЯЗАТЕЛЬНЫЙ] время ожидания ответа на команды от сервера в секундах. По-умолчанию 5
DeclareExchange - Объявить точку обмена
DeleteExchange - Удалить точку обмена
- name - Строка- Имя точки обмена.
- ifunused - Булево - Удаление будет выполнено, только если точка обмена не используется.
DeclareQueue - Объявить очередь
DeleteQueue - Удаляет очередь с сервера
- name - Строка - Имя очереди
- onlyIfIdle - Булево - Удаление будет выполнено, только если очередь не используется
- onlyIfEmpty - Булево - Удаление будет выполнено, только если очередь пуста
BindQueue - Установить связь очереди. Создает маршрут от точки обмена до очереди.
- queue - Строка - Имя очереди
- exchange - Строка - Имя точки обмена
- routingKey - Строка - Rлюч маршрутизации.
- arguments - Строка - [НЕОБЯЗАТЕЛЬНЫЙ] произвольные свойства в формате Json-объект. Пример: .
UnbindQueue - Отсоединяет очередь от точки обмена.
- queue - Строка - Имя очереди
- exchange - Строка - Имя точки обмена
- routingKey - Строка - Rлюч маршрутизации.
- Строка. Имя потребителя, сгенерированное сервером или переданное в параметре ИмяПотребителя.
- channelId - Строка - Имя созданного ранее потребителя.
- priority - Число - значение в диапазоне разрешенного приоритета для очереди, но не более 255.
GetLastError - получает информацию о последней ошибке
SleepNative - останавилвает выполнение программы на указанное время
- timeout - число - время остановки в милисекундах
Правила работы с компонентой из 1С
- Завершать работу с компонентой посредством обнуления объекта компоненты. Например:
- Все выходные параметры в методах компоненты передавать как Неопределено или пустая строка, а также обнулять возвращенные значения. Несоблюдение этого простого правила приводит к огромным утечкам памяти. Например:
- На сервере все исключения компоненты обрабратывать через Попытку . Иключение с вызовом в секциии исключения метода GetLastError() для получения истинной детальной ошибки. Пример
Подключение внешней компоненты на клиенте
Создание точки обмена, очереди и их связывание на клиенте
Установка в конфигурацию
Разворачивание окружения разработки на Windows 10 (Рекомендуется)
Вместе с проектом поставляются заранее скомпилированные зависимости в папке libsPrecompiled для 32 и 64 битных платформ в вариантах debug и release. Поэтому для создания окружения разработки нужно сделать только следующее:
Разворачивание окружения разработки на Windows 10 и самостоятельная компиляция всех зависимостей (Не рекомендуется)
Порядок изложенный ниже требуется, если нужно с нуля собрать весь проект и скомпилировать все зависимые билиотеки. Если это не требуется, то рекомендуется следовать простому порядку разворачивания окружения, приведенному выше.
Для компиляции 64-битной release версии либы
- Открыть файл проекта amqpcpp.sln
- Выбрать свойства проекта amqcpp => C/C++ => Code generation => Runtime library => Multi-threaded (/MT)
- Скомпилировать проект Release
Для компиляции 32-битной release версии либы
Нужно создать свой проект с нуля на базе проекта 64-битной компоненты, сгенерированного через cmake
Читайте также: