
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
やはりmain関数を定義していないことが原因です。
GUIプログラムであるかどうかは関係ありません。以下難しい話になりますが、一応説明します。
Cygwinでは、
スタートアップ → main → WinMain
の順に呼び出すようになっているのですが、main関数を定義していないと、ライブラリ内のmainが勝手に使われて、そこからWinMainを呼び出そうとします。
ISO/IEC 14882:2003の3.6.1 Main functionには、
An implementation shall not predefine the main function.
とあるので、厳密に言えばこれは規格違反なのですが、Windowsに対応するためのやむを得ない処置と考えられます。
ご回答ありがとうございます。
main関数を定義するのを忘れていました。13行目のvoidのあとに加えればいいのかな…?
丁寧な説明ありがとうございました!
No.2
- 回答日時:
内容というより質問の仕方自体も初心者ですね。
どういう環境で、どういうプログラムを作って、どのようなコマンドでコンパイルしたら
こうなりました。
くらいは書かないと。
で、#1の方と同じくcygwinを使ったWindows上でコンパイルしたものと推測します。
作成したプログラムはWindowsのメッセージボックスを出すとか
そんな感じのプログラムじゃないですか?
>gcc --target-help
Target specific options:
-mthreads Use Mingw-specific thread support
-mnop-fun-dllimport Ignore dllimport for functions
-mdll Generate code for a DLL
-mconsole Create console application
-mwin32 Set Windows defines
-mno-win32 Don't set Windows defines
-mwindows Create GUI application
-mno-cygwin Use the Mingw32 interface
ということで、Windows GUI用プログラムということを指定してみてくださいな。
しかし初心者がWindows GUIプログラム作るのにcygwin gcc使うの?
この回答への補足
ご回答ありがとうございます。確かに質問の仕方が意味不明でした。すみません。
環境は環境はcygwinのgccを使っています。
作ったプログラミングはタグが含まれる文字列を解析するもので、以下のように作成しました。
#define MAXELMNUM 256
typedef struct {
char *tag;
int depth;
char *value;
} ELEMENT;
char *parse_ml_data(char *, int);
ELEMENT elmtbl[MAXELMNUM];
int elmnum = 0;
void parse_ml_string(char *mlstr)
{
while(*mlstr != '\0'){
mlstr = parse_ml_data(mlstr + 1, 1);
}
}
char *parse_ml_data(char *mlstr, int level)
{
/*開始タグ処理*/
elmtbl[elmnum].tag = mlstr;
elmtbl[elmnum].depth = level;
for (; *mlstr != '>'; mlstr++);
*mlstr = '\0';
/*タグの値処理*/
elmtbl[elmnum].value = mlstr;
for ( *mlstr++; *mlstr != '<'; mlstr++);
*mlstr = '\0';
elmnum++;
/*下位のタグ構造処理*/
while(*(mlstr + 1) = '<')
mlstr = parse_ml_data(mlstr + 1, level + 1);
/*修了タグ処理*/
for (mlstr += 2; *mlstr != '>'; mlstr++);
return mlstr + 1;
}
No.1
- 回答日時:
書いてあるとおりです。
`WinMain@16`というシンボルを参照しようとしたけれども、定義されていないのでリンクエラーになっています。
エラーメッセージからCygwinのようですが、考えられる可能性はWinMainまたはmainを定義していないからです。ただし、正確なところはソースを見なければ分かりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
signalハンドラに引数を渡したい
-
マウスカーソルの表示・非表示
-
Pascalの時刻表検索プログラム...
-
Excel VBA で、データベースフ...
-
Macターミナルで実行中のプログ...
-
エクセルVBA 大容量CSVファイル...
-
FOM出版の公認テキスト&問題集...
-
vb.netでバッチ処理
-
VB 電卓 メモリー機能
-
ソケット通信 同じポート番号...
-
Linuxでのシリアル通信について...
-
powershell を使いカレントディ...
-
VBA:CSVファイルの読出し手法...
-
.sb3のファイルを.sb2に変換す...
-
C# シリアル通信でデータ受信...
-
ACCESSでフォームのUnloadでデ...
-
メッセージボックスのボタン名変更
-
TCP/IP通信時のサーバーからの受信
-
フレームワーク「4.8.1」で、[S...
-
AIXでのプロセス使用メモリの最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba listviewにおけるtextのAli...
-
マイコンからプログラムを読み...
-
指定したフォルダーを最前面表...
-
2値化した画像の黒い部分のピク...
-
COBOLのS9タイプからXタイプへ...
-
自分のHTMLサイトでRSSを読み込...
-
プロダクションコードとは?
-
VB6 画面サイズ変更について
-
Pythonで仮想通貨の自動売買が...
-
C言語primeについて
-
世界一美しいソースコード
-
誕生日占いをプログラムで作成...
-
gccでスタックオーバーフローの...
-
VBA
-
プログラムってコードに性格っ...
-
三次元のグラフを書きたいので...
-
XPathの関数「text()="value"」...
-
Visual C++で作ったプログラム...
-
C言語にすごく悩んでいます。
-
C++で書いてあるフリーソフトの...
おすすめ情報