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

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

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

Post by techie » Tue 09 Feb, 2016 09:09

В Python есть предупреждение, что модули на C лучше компилить с той же версией студии, которая используется для сборки самого Python. На самом деле компилить можно и MinGW и вроде работает, но не очень понятно откуда такое требование. Интересно откуда ноги растут и нет ли такого требования для плагинов Far?

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Tue 09 Feb, 2016 12:37

techie wrote: откуда такое требование
Это проистекает из желательности совпадения используемых версий C/C++ runtime library. Не буду вдаваться в технические подробности, но если не уделять этому вопросу должного внимания, можно получить всевозможные проблемы в работе приложения, из которых утечки памяти — самые безобидные.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 4618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 121 times
Contact:

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

Post by DrKnS » Tue 09 Feb, 2016 19:39

techie wrote: нет ли такого требования для плагинов Far?
Нет.

User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

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

Post by techie » Thu 11 Feb, 2016 10:22

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

Я чего спрашиваю - тут ребята заморочились сделать совместимый MinGW - https://mingwpy.github.io/ - и я думал сравнить с Far, чтобы понять разницу. И Python и Far подгружают модули динамически.

User avatar
HaRT
Moderator
Posts: 8076
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Thu 11 Feb, 2016 12:35

techie wrote: почему в Far прокатывают .dll которые юзают разный C/C++ runtime, а в Python нет
Потому что в Фаре заморочились решением этого вопроса, а в Питоне нет. Чтобы отказаться от требования одинакового рантайма, требуется дополнительная проработка ABI и дополнительная дисциплина в его реализации на стороне подключаемых модулей.
Фар есть инструмент, а не нянька. © 2009 DrKnS

2useven10
Posts: 3010
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 82 times

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

Post by 2useven10 » Thu 11 Feb, 2016 12:45

Главная разница в используемом рантайме.
В питоне используется DLL версия - рантайм в отдельной DLL.
В фар рантайм статически линкуется с каждым компонентом (хотя некоторые DLL писатели так не делают).
Получается больше независимости но и больше рантаймов вшитых в разные части ситемы
(в сам фар, + в каждый плагин со статической ликовкой).

User avatar
DrKnS
Posts: 4618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 121 times
Contact:

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

Post by DrKnS » Thu 11 Feb, 2016 17:15

Потому что в Far API не используются объекты и ресурсы стандартных библиотек C и C++.
Фару глубочайше фиолетово, чем там собран ваш плагин, статически или динамически, поскольку это никак не отражается на интерфейсе.
А если у вас в питоне, например, память выделяется в одном компоненте, а освобожается где-то в другом, или FILE* всякие передаются туда-сюда, то без одинакового рантайма будет ой, да.

User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

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

Post by techie » Fri 12 Feb, 2016 22:33

DrKnS wrote: Потому что в Far API не используются объекты и ресурсы стандартных библиотек C и C++.
Это кое-что проясняет. Я глубоко не смотрел, но FILE* всякие в питоне по-ходу да, передаются. А Far что совсем без них живёт? Совсем никаких объектов шареных нету?

User avatar
DrKnS
Posts: 4618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 121 times
Contact:

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

Post by DrKnS » Fri 12 Feb, 2016 23:01

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

Post Reply

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