私はCプログラムをコンパイルしましたgcc -c -o test.exe test.c
が、エラーは発生しませんでした。実行すると、Access is denied.
これは私のコードです
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}
答え1
-c
@Scottなしで試してみましょう
答え2
バイナリ/オブジェクト/実行可能コードファイルには複数の種類があります。これらの名前がどの程度標準的であるかはわかりませんが、CS 11: C プログラムのコンパイル(Caltech では)「オブジェクト ファイル」と「バイナリ実行ファイル」について言及しています。簡単な (おそらく単純化しすぎた) 説明は、オブジェクト ファイルには単一のソース ファイルをコンパイルして生成された命令が含まれており、バイナリ実行ファイルは完全なプログラムを表すということです。(プログラミングの「Hello world」レベルを超えると、単一のプログラムを構築するために複数のソース コード ファイルを持つことが一般的です。) オブジェクト ファイルは、多かれ少なかれ定義上、不完全なプログラムなので実行できません。
でコンパイルすると、関数だけを-c
含むオブジェクトファイルが作成されます。これには、main
電話に含まれていますが、関数自体や、関数を検索/ロードする手段は printf
含まれていません。完全なプログラムのバイナリ実行ファイルを取得するには、オプションを省略する必要があります。printf
-c