前提・実現したいこと
C言語初心者です。
C言語からコマンドプロンプトを起動し、コマンドを入力するプログラムを作成しています。
具体的には、ユーザが入力したソースコードをコピペしたsource.cを生成し、それをgccで
コンパイル・ビルドするというものです。コマンドは「gcc source.c」です。
発生している問題・エラーメッセージ
上記のコマンドをプログラムが入力したときに、
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../libmingw32.a(main.o):(.text.startup+0xb0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
というエラーメッセージがでてコンパイルができません。
しかし、私自身がコマンドプロンプトを開いて手動でコマンドを入力するとなんなくa.exeを生成してくれます。原因がさっぱり分からなくて困っています。gccに詳しい方、ご説明の程よろしくお願いします。
該当のソースコード
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(void) { static char str[1000][100000]; char gcc_command[5000]; int source_end; int i, j, k; printf("input your source_code>>\n");//ソースコードを入力 for (i = 0; 1 ; i++) { scanf(" %[^\n\r]", str[i]); if (!strcmp(str[i], "end")) { source_end = i; break; } } FILE* fp;//ユーザが入力したソースコードをコピペするsource.cの生成 fp = fopen("source.c", "w+"); for (i = 0; i < source_end; i++) { fprintf(fp, "%s\n", str[i]); } system("gcc source.c -o test");//cmd上でgccコマンドを入力 fclose(fp); return 0; }
試したこと
エラーメッセージでググってみましたが、似たような現象の人はいませんでした。自分と同じ現象でなくても参考になるかなとも思って調べましたが、特に参考になるものはありませんでした。
補足情報(FW/ツールのバージョンなど)
gcc (MinGW.org GCC-8.2.0-3) 8.2.0
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー