Требование на сборку с той же версией MS VS

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Требование на сборку с той же версией MS VS

Post by techie »

В Python есть предупреждение, что модули на C лучше компилить с той же версией студии, которая используется для сборки самого Python. На самом деле компилить можно и MinGW и вроде работает, но не очень понятно откуда такое требование. Интересно откуда ноги растут и нет ли такого требования для плагинов Far?
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Требование на сборку с той же версией MS VS

Post by HaRT »

techie wrote: откуда такое требование
Это проистекает из желательности совпадения используемых версий C/C++ runtime library. Не буду вдаваться в технические подробности, но если не уделять этому вопросу должного внимания, можно получить всевозможные проблемы в работе приложения, из которых утечки памяти — самые безобидные.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Требование на сборку с той же версией MS VS

Post by DrKnS »

techie wrote: нет ли такого требования для плагинов Far?
Нет.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Требование на сборку с той же версией MS VS

Post by techie »

Так а почему в Far прокатывают .dll которые юзают разный C/C++ runtime, а в Python нет?

Я чего спрашиваю - тут ребята заморочились сделать совместимый MinGW - https://mingwpy.github.io/ - и я думал сравнить с Far, чтобы понять разницу. И Python и Far подгружают модули динамически.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Требование на сборку с той же версией MS VS

Post by HaRT »

techie wrote: почему в Far прокатывают .dll которые юзают разный C/C++ runtime, а в Python нет
Потому что в Фаре заморочились решением этого вопроса, а в Питоне нет. Чтобы отказаться от требования одинакового рантайма, требуется дополнительная проработка ABI и дополнительная дисциплина в его реализации на стороне подключаемых модулей.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Требование на сборку с той же версией MS VS

Post by 2useven10 »

Главная разница в используемом рантайме.
В питоне используется DLL версия - рантайм в отдельной DLL.
В фар рантайм статически линкуется с каждым компонентом (хотя некоторые DLL писатели так не делают).
Получается больше независимости но и больше рантаймов вшитых в разные части ситемы
(в сам фар, + в каждый плагин со статической ликовкой).
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Требование на сборку с той же версией MS VS

Post by DrKnS »

Потому что в Far API не используются объекты и ресурсы стандартных библиотек C и C++.
Фару глубочайше фиолетово, чем там собран ваш плагин, статически или динамически, поскольку это никак не отражается на интерфейсе.
А если у вас в питоне, например, память выделяется в одном компоненте, а освобожается где-то в другом, или FILE* всякие передаются туда-сюда, то без одинакового рантайма будет ой, да.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Требование на сборку с той же версией MS VS

Post by techie »

DrKnS wrote: Потому что в Far API не используются объекты и ресурсы стандартных библиотек C и C++.
Это кое-что проясняет. Я глубоко не смотрел, но FILE* всякие в питоне по-ходу да, передаются. А Far что совсем без них живёт? Совсем никаких объектов шареных нету?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Требование на сборку с той же версией MS VS

Post by DrKnS »

Зависимых от рантайма - нету.
Post Reply

Return to “Разработка плагинов”