2016-08-06 8 views
0

このエラーがなぜ発生するのかはすでに分かっていますので、SDL_main.hファイル内に 'main'マクロが作成されています。関数。SDLライブラリ使用時のリンカエラー:_mainがmain.objですでに定義されています

明らかな回避策のどれも私を助けてくれないようです。私は試みました:

  1. (int argc、char * argv [])で私のmain関数を定義してください。

  2. はSDL_main.hのコメントのようにCリンケージでそれを試してみましたお勧め:メイン未定義しようとしました

    * The application's main() function must be called with C linkage, 
    * and should be declared like this: 
    * \code 
    * #ifdef __cplusplus 
    * extern "C" 
    * #endif 
    * int main(int argc, char *argv[]) 
    * { 
    * } 
    * \endcode 
    
  3. を。

メイン機能を正常に動作させるために他の方法がありますか?

#define SDL_MAIN_HANDLED 

SDLはそのmainナンセンスのすべてをスキップする原因になるとされている:

+0

主な作品を未定義いますが、SDL含めた後、あなたの主な手順の定義の前にundefをする必要があります。それはあなたがSDLを含める前に発生する必要があることを

注意。コードを見せてくれますか? –

+0

完了したら、本当にどれくらいの助けがあるかわかりません。 –

+0

私はその正確な順序でundefをやったが、役に立たなかった。 –

答えて

2

はあなたのmain.cppファイルの先頭にこれも試してみてください。

#define SDL_MAIN_HANDLED 
#include "SDL2/SDL.h" 
+0

私の「メイン」は再び白くなりましたが、もうマクロにはなりませんが、私はまだ同じエラーを受けています。 –

+0

あなたのビルドシステムにはおそらく何か問題があります。それを理解できない場合は、非常に単純なプログラムをコンパイルしてください。IDEを使わなくても、問題の原因を見つけるまでゆっくりと現在の設定に近づけてください。オンラインの誰かがあなたのプロジェクトファイルに何が間違っているかを魔法のように推測することはほとんどありません。 –

+0

ええ、私の面倒なファイル構造が問題であったことが判明しました。レッスンは私が推測することを学んだ。 –

関連する問題