(C/C++) Как сгенерировать исполняемый файл, который может работать как под Windows, так и под Linux?

Я новичок в программировании. Насколько я знаю, программа, скомпилированная в Linux, не должна работать в Windows. Итак, если мы хотим запустить одну и ту же программу на обеих платформах, нам нужно скомпилировать исходный код под обеими платформами и создать 2 разных исполняемых файла.

Недавно я изучал исходный код открытого кроссплатформенного Java GUI приложения. Я с удивлением обнаружил, что бэкэндовый движок этого GUI-приложения представляет собой небольшой исполняемый файл, сгенерированный из C++ кодов. Независимо от того, используют ли пользователи это приложение в Windows или Linux, Java GUI будет вызывать один и тот же исполняемый файл в папке bin.

Я просто хочу знать, как этот исполняемый файл может работать как в Windows, так и в Linux?

Я также заинтересован в создании кросс-платформенного приложения с графическим интерфейсом Java, использующего С++ программу в качестве движка. Эта C++ программа доступна только для Linux. Я немного погуглил и обнаружил, что мне нужно использовать Cygwin для переноса на Windows. Однако, если я использую Cygwin, то в итоге у меня будет 2 разных исполняемых файла.

Как я могу совместить исполняемый файл Windows с исполняемым файлом Linux? Можно ли сгенерировать один исполняемый файл, который может работать на обеих платформах?

Спасибо.

9
задан 15 September 2011 в 15:45
поделиться