C言語で端末を操作し、プログラムを実行しようとしています。
中身を書き込んで、実行しようとしているですが、
中身を書き込む、コードを付け足すとエラーが出ます。
###エラーコード
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: 関数 `_start' 内: (.text+0x20): `main' に対する定義されていない参照です collect2: error: ld returned 1 exit status sh: 1: ./a0: not found
###main.c
#include <stdio.h> #include <stdlib.h> #include "Lcommand.h" int main(){ FILE *fi; fi=fopen("a.c","w"); char k[]="#include <gtk/gtk.h>int main(int argc, char** argv){ //親ウィジェットwindowを指定 GtkWidget *window; //GTK+の初期化とオプション解析 gtk_init(&argc,&argv); //ウィンドウの作成 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //ウィンドウのサイズ設定gtk_widget_set_size_request(window, 300, 200); //ウィンドウを閉じる時にプログラムも終了させる g_signal_connect(window, \"destroy\", G_CALLBACK(gtk_main_quit), NULL); //ウィンドウを表示 gtk_widget_show(window); //GTK+のメイン関数(ループ) gtk_main(); return 0;}"; fprintf(fi,"%s",k); free(fi); LC(0,'a'); TLC(0,'a'); return 0; }
###Lcommand.h
int LC(int a,char b) { char str[255]; sprintf(str,"gcc %c.c -o %c%d `pkg-config --cflags --libs gtk+-2.0`", b, b, a); system(str); return 0; } int TLC(int a,char b) { char str[255]; sprintf(str,"./%c%d",b,a); system(str); return 0; }
###補足情報(言語/FW/ツール等のバージョンなど)
ubuntu16.0.4
kのプログラムは、
http://uchigo.main.jp/gtk3/chap02/chap02.htmlから。
mainが見つからない時のリンクエラーです。コンパイル時のコマンドラインはどうなっていますか?・・・たぶん、main(int argc, char *argv[])で直るかと?
回答2件
あなたの回答
tips
プレビュー