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