だから、悪名高いエラーが戻ってきました。プロジェクトは、main()メソッドを見つけることができないと文句を言っています(それがエラーの意味です)。
しかし、私にはメインがあり、私のプロジェクトはコンソールプロジェクトです。以前は機能していたので、そうではありません。
また、プロジェクトにはクラスとファイルが多すぎてすべてを投稿できないので、必要に応じて必要なクラスを投稿します。
これは、Visual Studio 2010のC++、OpenGL、SDLゲームです。突然、不可解にこのリンカーエラーが表示される前に正常に機能していたため、ライブラリの問題ではありません。
編集:main()メソッド:
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_ALPHA);
glutCreateWindow("Game");
glEnable(GL_DEPTH_TEST);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
g = Game();
glutInitWindowSize(g.getScreenWidth(), g.getScreenHeight());
//glutPositionWindow(1280, 50);
// Callbacks
glutDisplayFunc(handleRedraw);
glutReshapeFunc(handleResize);
glutMouseFunc(handleMouseClicks);
glutPassiveMotionFunc(handleMouseOvers);
glutKeyboardFunc(handleKeyboardEvents);
glutTimerFunc(50, moveItemToInventory, 0);
glutMainLoop();
return 0;
}
SDL_main.hはSDL.hから自動的にインクルードされるため、常に厄介な#defineを取得します。
書くだけ:
#include <SDL.h>
#undef main
そしてそれはうまくいくはずです
別のオプションは、通常のパラメーターで独自のメインを実際に定義することです
int main(int argc, char *args[])
{
// Your code here
}
これでエラーが解消されます。
次に、これらのパラメーターを使用せず、コンパイラの警告も削除したい場合は、メイン関数でそのトリックを実行できます。
(void)argc;
(void)args;
犯人はSDL_main.h
。そのファイルが含まれていないことを確認してください。そこには厄介な定義があります。
#define main SDL_main
#define SDL_MAIN_HANDLED
#include "SDL.h"