有关OpenGL程序的链接器错误(_WinMain@16(参考)
编译OpenGL程序时会出现以下链接器错误:有关OpenGL程序的链接器错误(_WinMain@16(参考),opengl,visual-c++,Opengl,Visual C++,编译OpenGL程序时会出现以下链接器错误: error LNK2019: unresolved external symbol _WinMain@16 referenced 显示功能 void display(void) { glClear (GL_COLOR_BUFFER_BIT); glPushMatrix(); glTranslatef (-1.0, 0.0, 0.0); glRotatef ((GLfloat) shoulder, 0.0, 0.0,
error LNK2019: unresolved external symbol _WinMain@16 referenced
显示功能
void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glTranslatef (-1.0, 0.0, 0.0);
glRotatef ((GLfloat) shoulder, 0.0, 0.0, 1.0);
glTranslatef (1.0, 0.0, 0.0);
glPushMatrix();
glScalef (2.0, 0.4, 1.0);
glutWireCube (1.0);
glPopMatrix();
glTranslatef (1.0, 0.0, 0.0);
glRotatef ((GLfloat) elbow, 0.0, 0.0, 1.0);
glTranslatef (1.0, 0.0, 0.0);
glPushMatrix();
glScalef (2.0, 0.4, 1.0);
glutWireCube (1.0);
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
窗口大小调整处理程序
void reshape (int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(65.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef (0.0, 0.0, -5.0);
}
键盘输入处理程序
void keyboard (unsigned char key, int x, int y)
{
switch (key) {
case 's': /* s key rotates at shoulder */
shoulder = (shoulder + 5) % 360;
glutPostRedisplay();
break;
case /*`*/'S':
shoulder = (shoulder - 5) % 360;
glutPostRedisplay();
break;
case /*`*/'e': /* e key rotates at elbow */
elbow = (elbow + 5) % 360;
glutPostRedisplay();
break;
case /*`*/'E':
elbow = (elbow - 5) % 360;
glutPostRedisplay();
break;
default:
break;
}
}
错误LNK2019:未解析的外部符号_WinMain@16引用表示程序缺少进程输入函数WinMain。有两个可能的原因:
可能性1
您的程序有一个输入函数main,但您正在为目标子系统Windows进行编译。有关详细信息,请参阅。实际上,您必须指定不同的启动函数
或者
/SUBSYSTEM:windows
/ENTRY:mainCRTStartup
或
可能性2
您的代码缺少入口点函数。您至少需要一个函数main或WinMain,以及适当的链接器子系统和条目设置。如果没有这样的函数,就会出现此错误。我冒昧地重新格式化了代码,并从问题标题推断出您可能遇到的问题。下次请正确格式化您的代码,描述您的问题,并写一个有意义的标题。
/SUBSYSTEM:console