11

.c ソース コードから作成されたオブジェクト ファイル .o を .exe に変換することはできますか? 可能であれば、gcc を使用した直接コマンドはありますか?

4

2 に答える 2

25
gcc foo.o -o foo.exe
于 2010-05-10T15:41:49.147 に答える
12

の内容によっては、 a.oを a に変換できる場合があります。はの要件を満たさなければなりません。それらの1つは関数です。 .exe.o.o.exemain

私は通常、テーマごとにプロジェクトを分割します。各ピースはファイルに変換され.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持っている必要があります。 注: C および C++ 言語仕様では、実行可能ファイルを作成する前にファイルに変換する必要はありません。main.exe.o

于 2010-05-10T19:20:52.753 に答える