2016-07-29 10 views
0

main()機能なしでプログラムを記述できますか?エラー 'WinMain @ 16'への未定義参照

私は私にこの問題の解決策とも適切なメモリを提供してください、このコードを書かれており、withoutmain.c としてファイル名を保存し

undefined reference to '[email protected]'" 

私のコード

#include<stdio.h> 
    #include<windows.h> 
    extern void _exit(register int code); 
    _start(){ 
     int retval; 
     retval=myFunc(); 
     _exit(retval); 
    } 
    int myFunc(void){ 
    printf("Hiii Pratishtha"); 
    return 0; 
    } 

としてエラーを取得していますコードの構築とこのプログラムのコンパイラ終了時に何が起こっているのかを示します。 ありがとうございました!

+0

解決策は簡単です: 'main()'なしでプログラムを書かないでください。 –

+0

リンカオプションでエントリポイントを指定する方法が必要ですが、gccについてはわかりません。ドキュメンテーションでそれを調べないのはなぜですか? – Medinoc

+0

[gccでCプログラムのエントリーポイントを変更するにはどうすればいいですか?](http://stackoverflow.com/questions/7494244/how-to-change-entry-point-of-c-program-with-gcc) – Medinoc

答えて

0

main()関数なしでプログラムを書くことはできますか?

はいメイン関数がないCプログラムがあります。 私はこのリンカオプションを設定するメイン

#include<stdio.h> 
#include<windows.h> 
#define _start main 
extern void _exit(register int code); 

int myFunc(void){ 
    printf("Hiii Pratishtha"); 
    return 0; 
} 

int _start(){ 
    int retval; 
    retval=myFunc(); 
    _exit(retval); 
} 

2)Using Entry Point (Assuming you are using visual studio)

を定義するマクロを使用して).......

1を二つの溶液を示唆Visual Studio開発環境

/ENTRY:function 

A func .exeファイルまたはDLLのユーザー定義の開始アドレスを指定します。

  1. プロジェクトの[プロパティページ]ダイアログボックスを開きます。詳細については、 Visual C++プロジェクトプロパティの設定を参照してください。
  2. L [リンカ]フォルダをクリックします。
  3. [詳細設定]プロパティページをクリックします。
  4. エントリポイントプロパティを変更します。

OR

あなたが

-Wl,-e_start 

-Wlgccを使用している場合は、...事はリンカに引数を渡し、リンカは、エントリを設定する-e引数を取りますfunction

関連する問題