Подключите нашего Telegram-бота для уведомлений о новых проектах

Скорректировать код на go, что бы скомпилированная dll под win64 работала так же как и под linux/mac

Разместить заказ
4 фрилансера уже откликнулись на этот заказ
Цены от 1200 ₽ до 5555 ₽.
Сроки от 1 до 2 дней.
Данные обновляются раз в 10 минут.
l
Заказчик
Отзывы фрилансеров: + 2 - 0
Зарегистрирован на сайте 4 года и 3 месяца
Бюджет: по договоренности
Исполнитель определен: Vitaly Takmazov  
Есть небольшой тестовый проект на C#, который выступает в качестве так называемой обёртки для взаимодействия с другой библиотекой, которая скомпилирована из go (исходники прилагаются).

Выяснилось, что при компиляции dll под windows x64, в библиотеке отсутствуют некоторые экспортируемые функции, что в свою очередь в c# проекте приводит к ожидаемой ошибке такого содержания: Unable to find an entry point named 'cmix_dm_set_router'.
При этом, если библиотеку скомпилировать для работы под системами linux или mac и запустить c# проект в них, то проблем не наблюдается, т.е. необходимые функции присутствуют в библиотеке.

Я пробовал компилировать win64 dll из-под linux командой ниже:
CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -buildmode=c-shared -o libxxdk-win-x64.dll ./sharedcgo
Так же в самой винде (предварительно установив gcc/g++ и тп) командой:
go build -buildmode=c-shared -o libxxdk-win-x64.dll ./sharedcgo
В обоих случаях получалась dll, в которой не было экспортируемой функции cmix_dm_set_router (и некоторых других, но я указываю именно эту в качестве ориентира), что подтверждала утилита dumpbin /EXPORTS libxxdk-win-x64.dll

Необходимо найти решение, которое добавит "потерянные" функции, и при этом, должна сохранится работоспособность под linux и mac. Это могут быть какие-то хитрые параметры компиляции под винду и другие манипуляции о которых я не знаю, либо внести необходимые изменения в код go или c#.

Код проекта в архиве или по ссылке github.com/NarayanaSupram...
В папке sharedcgo собственно go код для компиляции dll.
В  папке xxdk.NET пример, который должен работать с полученной dll.
На картинках:
– результат выполнения с ошибкой;
– вывод dumpbin для dll скомпиленных под win64 в линукс и под виндой, со списком функций, где отсутствует cmix_dm_set_router и некоторые другие.
Так же мог бы предоставить vps с linux при необходимости.
Разделы:
Заказ
Опубликован:
24.04.2023 | 07:37 [поднят: 24.04.2023 | 07:37]

Теги: написать программу, создать программу, разработать программу, разработчики программ, прикладной программист

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».
-->-->