Однако GCC в MinGW выводит объектные файлы в формате COFF
GCC может быть настроен для генерации различных выходов (включая ELF
) независимо от того, на каком хосте он работает.
То есть GCC, работающий в Linux, может быть настроен на генерацию COFF
, а GCC, работающий в Windows, может быть настроен на генерацию ELF32
или ELF64
для различных процессоров (например, x86
или *). 1016 * или MIPS
).
Компилятор, который работает на одном типе хоста, но генерирует код для другого вида, называется кросс-компилятором.
TCC поддерживает только формат ELF
Это не имеет смысла утверждение: это может означать, что вы хотите, чтобы GCC генерировал ELF32 for i686 Linux
, или ELF64 for SPARC Solaris
, или любое количество других комбинаций процессор / ОС / бит.
Вы должны выяснить, на каком целевом процессоре и операционной системе вы хотите запустить свой финальный исполняемый файл, а затем собрать (нетривиально) или загрузить соответствующий кросс-компилятор из Windows для этой цели.
file test.o
test.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
Хорошо, вы хотите, чтобы в Windows был Linux/i386/ELF32
кросс-компилятор.