未解决的外部符号_WinMain @ 16

时间:2012-05-05 17:14:07

标签: ogre

我尝试编译以下代码(来自Ogre3d初学者指南,由Felix Kerger出版)

#include "Ogre\ExampleApplication.h"    

class Example1 : public ExampleApplication
{
public:
void createScene()
{Ogre::Entity* ent =
mSceneMgr->createEntity("MyEntity","Sinbad.mesh");
mSceneMgr->getRootSceneNode()->attachObject(ent);
}
};



int main (void)
{
Example1 app;
app.go();
return 0;
}

所以编译过程不起作用。我目前正在使用Visual Studio 2010和OgreSDK_vc10_v1-7-3。

错误是

1>InitializeBuildStatus:
1>  Touching "obj\Debug\OgreApp3.unsuccessfulbuild".
1>ClCompile:
1>  main.cpp
1>d:\ogresdk_vc10_v1-7-3\include\ogre\exampleframelistener.h(343): warning C4244: '+=': conversion from 'double' to 'Ogre::Real', possible loss of data 
1>d:\ogresdk_vc10_v1-7-3\include\ogre\exampleframelistener.h(344): warning C4244: '-=' : conversion from 'double' to 'Ogre::Real', possible loss of data
1>d:\ogresdk_vc10_v1-7-3\include\ogre\exampleframelistener.h(348): warning C4244: 'argument' : conversion from 'double' to 'Ogre::Real', possible loss of data
1>d:\ogresdk_vc10_v1-7-3\include\ogre\exampleframelistener.h(349): warning C4244: 'argument' : conversion from 'double' to 'Ogre::Real', possible loss of data
1>d:\ogresdk_vc10_v1-7-3\include\ogre\exampleframelistener.h(454): warning C4244: '-=' : conversion from 'double' to 'Ogre::Real', possible loss of data
1>ManifestResourceCompile:
1>  All outputs are up-to-date.
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>bin\Debug\\OgreApp3.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:10.57
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

3 个答案:

答案 0 :(得分:2)

将主要功能的签名替换为以下内容:

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )

答案 1 :(得分:2)

项目右下角

- >属性链接器 - >子系统

使用“CONSOLE(/ SUBSYSTEM:CONSOLE)”

更改子系统

像这样https://www.dropbox.com/s/li3qnzw152snizo/ogre.png

答案 2 :(得分:0)

您的编译器认为该程序是一个Windows应用程序,但您的源代码是用于命令行应用程序。