Кросскомпилятор Двоичная совместимость в C

Мне нужно проверить то, в чем я сомневаюсь. Если разделяемая библиотека (.dll) написана на C, по стандарту C99 и скомпилирована под компилятором. Скажите MinGw. Тогда, по моему опыту, он двоично совместим и, следовательно, может использоваться любым другим компилятором. Скажите MS Visual Studio. Я говорю по своему опыту, потому что я пробовал это успешно не раз. Но мне нужно проверить, является ли это правилом.

И в дополнение я хотел бы спросить, действительно ли это так, тогда почему библиотеки, полностью написанные на C, такие как openCV, например, не предоставляют скомпилированные двоичные файлы для каждой другой ОС ? Я знаю, что очевидной причиной было бы установить все параметры времени компиляции, но кроме этого нет никакого права?

РЕДАКТИРОВАТЬ: Я добавляю дополнительный вопрос, который я рассматриваю как логическое продолжение оригинала. Разве не так можно было бы создать библиотеку с закрытым исходным кодом? Поскольку возможность указать исходный код здесь не используется, предоставление двоичных файлов - единственный выбор. И в этом случае предоставление двоичных файлов для как можно большего числа архитектур является желаемым результатом, при этом C является очевидным выбором для обеспечения лучшей переносимости между системами и компиляторами. Правильно?

10
задан Lefteris 25 July 2011 в 16:02
поделиться