Ну вот, как можно видеть есть формат: elf64, а есть win64. Для комбинацией с tcc я применял elf (elf32). Кстати, применение этих форматов не прозрачно, каждый требует определённых правил при написании asm кода.
Мне интересна последовательность в комплекте:
gcc преобразует (source.c + source.h) -> source.asm
as преобразует source.asm -> source.o
ld преобразует source.o -> source.exe
Таким образом, как я понимаю, соединять nasm и gcc нужно на этапе ld.
Соответственно:
GNU ld (GNU Binutils) 2.25
Выходные цели:
ld: supported targets: pe-x86-64 pei-x86-64 pe-bigobj-x86-64 elf64-x86-64
elf64-l1om elf64-k1om pe-i386 pei-i386 elf32-i386 elf64-little elf64-big elf32-little
elf32-big plugin srec symbolsrec verilog tekhex binary ihex
Как понимаю моё: pe-x86-64? (pei-x86-64?) Но могу ошибиться. И на вход ему можно что угодно или что-то конкретно?