Преобразуйте.o файл в .exe

Действительно ли возможно преобразовать объектный файл.o, который был создан от.c исходного кода до .exe? И если это возможно, там прямая команда с помощью gcc?

11
задан Dman 10 May 2010 в 15:41
поделиться

2 ответа

gcc foo.o -o foo.exe
22
ответ дан 3 December 2019 в 02:40
поделиться

В зависимости от содержимого возможно преобразование .o в .exe . ] .o . .o должен удовлетворять требованиям .exe . Одна из них - функция main .

Обычно я разделяю проекты на части по темам. Каждый фрагмент переведен в файл .o . Отдельная часть не может быть преобразована в .exe , но все части вместе могут быть преобразованы.

Например, если я скомпилирую следующий файл, он превратится в файл .o :
{hello.c}

#include <stdio.h>

void Hello()
{
  puts("Hello");
  return;
}

Затем я компилирую:

gcc -c hello .c -o hello.o

Будет создан файл hello.o . Его нельзя преобразовать в файл .exe , поскольку он не имеет функции запуска. Это просто информация.

Однако следующий текст можно преобразовать из .o в .exe :
{main.c}

#include <stdio.h>
int main(void)
{
  puts("Hello from main.\n");
  return 0;
}

Создать .o файл:

  gcc -c -o main.o main.c

И поскольку он имеет точку входа с именем main по определению языка, main.o может быть преобразован в . exe :

  gcc -o main.exe main.o

Таким образом, некоторые файлы .o можно преобразовать в .exe , а другие - нет. В языках C и C ++ файл .o должен иметь функцию main , чтобы стать исполняемым файлом .exe . Примечание. Спецификации языков C и C ++ не требуют перевода в файлы .o перед созданием исполняемого файла.

9
ответ дан 3 December 2019 в 02:40
поделиться