вам придется перекомпилировать все библиотеки для разных операционных систем.Бинарные форматы для библиотек варьируются от операционной системы к операционной системе.Что еще более важно, даже если вы не используете библиотеки, вам нужно перекомпилировать по той простой причине, что разные операционные системы имеют разные соглашения о системных вызовах.Единственный способ обойти это с помощью виртуализатора.
В частности, CygWin не может запускать программы linux.совсем.CygWin обеспечивает только уровень совместимости posix между вашей программой и ядром Windows.
Ситуация на linux немного менее безрадостна.Wine может запускать некоторый собственный код Windows (без необходимости что-либо перекомпилировать, включая ваш оригинальный код).Но вино также имеет ограничения.Это не полный Windows API, и все, что требуется для библиотечного кода, должно быть доступно в Wine, иначе оно тоже не будет работать.Для многих простых приложений это не является серьезной проблемой, но многие более новые Windows API, некоторые темные углы старых, которые не видят особой пользы, и, в частности, все, что связано с оборудованием, вероятно, будет недоступно.
Если вы собираетесь работать на нескольких платформах, необходимо сначала убедиться, что библиотеки, которые вы намереваетесь использовать, также являются кроссплатформенными или что существуют разумные эквиваленты для всех операционных систем, которые вы хотите использовать.использовать.