Mặc dù mã đối tượng cơ bản có thể giống nhau giữa các nền tảng, các ứng dụng gốc không tầm thường không thể tương thích nhị phân giữa Windows và Linux.
Nếu Linux thực thi mà bạn đang cố gắng chuyển đổi được liên kết động, thì nó sẽ yêu cầu sự hiện diện của các thư viện không tồn tại trên Windows (bạn có thể xem danh sách các thư viện này bằng cách chạy ldd /path/to/programtrên máy Linux).
Ngay cả khi bạn đã chuyển đổi tất cả các thư viện sang định dạng thực thi PE hoặc liên kết tĩnh chúng, các cuộc gọi hệ thống đến hạt nhân NT và Linux hoàn toàn khác nhau. Không có sự tương ứng một-một trực tiếp giữa chúng.
Tùy chọn tốt nhất của bạn là tìm mã nguồn cho ứng dụng gốc nếu có thể. Nếu chương trình được viết theo cách di động, nó có thể biên dịch trên cả Windows và Linux. Mặc dù các cuộc gọi hệ thống không giống nhau giữa hai nền tảng, một tập hợp con của việc triển khai thư viện C của chúng có hành vi được tiêu chuẩn hóa.