glutBitmapCharacter() 给出链接错误 c++

Posted

技术标签:

【中文标题】glutBitmapCharacter() 给出链接错误 c++【英文标题】:glutBitmapCharacter() giving a link error c++ 【发布时间】:2019-10-29 21:33:17 【问题描述】:

我正在尝试使用函数在窗口上创建文本。当我在代码中有 glutBitmapCharacter() 时,我收到此错误:LNK2019 unresolved external symbol __imp__glutBitmapCharacter@8 referenced in function "void __cdecl drawText(char const *,int,int,int)" (?drawText@@YAXPBDHHH@Z)

drawText函数:

 void drawText(const char* text, int length, int x, int y) 
     glMatrixMode(GL_PROJECTION);
     double* matrix = new double[16];
     glGetDoublev(GL_PROJECTION_MATRIX, matrix);
     glLoadIdentity();
     glOrtho(0, 800, 0, 600, -5, 5);
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
     glPushMatrix();
     glLoadIdentity();
     glRasterPos2i(x, y);
     for (int i=0; i<length; i++) 
         glutBitmapCharacter(GLUT_BITMAP_9_BY_15, (int)text[i]);
     
     glPopMatrix();
     glMatrixMode(GL_PROJECTION);
     glLoadMatrixd(matrix);
     glMatrixMode(GL_MODELVIEW);
 

主要功能:

 int main() 
    int windowWidth = 1024, windowHeight = 1024;
    if (!glfwInit())
        return -1;


GLFWwindow* window;
window = glfwCreateWindow(windowWidth, windowHeight, "electroCraft", NULL, NULL);
glfwMakeContextCurrent(window); // stes the specified window as active INACTIVE SCREEN IF WINDOW NOT CURRENT!!!!
if (!window) 
    glfwTerminate();
    printf("Screen failed to start. ABORTING...\n");
    return -1;

glMatrixMode(GL_PROJECTION);
glViewport(0, 0, windowWidth, windowHeight);
glOrtho(0, windowWidth, 0, windowHeight, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glEnable(GL_DEPTH_TEST);
string title;
title = "Hello World!";
while (!glfwWindowShouldClose(window)) 
    glClearColor(62.0f / 255.0f, 85.9f / 255.0f, 255.0 / 255.0, 0.0);
    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

    //begin drawing
    drawText(title.data(), title.size(), windowWidth / 2, windowHeight / 2);

    glfwSwapBuffers(window);
    glfwPollEvents();

glfwTerminate();
return 0;

我很确定我收到此错误可能是因为未正确链接库,但我对 opengl 库中的任何其他代码没有其他问题

【问题讨论】:

这是上面代码中唯一的 glut 函数,所以链接中可能只缺少一个库? 我有#include 并且我检查了项目属性,一切似乎都链接了 错过#include &lt;GL\freeglut.h&gt; 会给你一个编译错误而不是链接器错误。你如何链接程序? What is an undefined reference/unresolved external symbol error and how do I fix it?的可能重复 我不认为这是因为我没有正确链接库我认为它只是我的代码和我没有正确完成的事情 【参考方案1】:

问题是我同时使用 32 位库和 64 位库也会导致其他错误。我通过下载所需的所有 64 位库然后将我的项目重新启动为 64 位项目来解决此问题

【讨论】:

以上是关于glutBitmapCharacter() 给出链接错误 c++的主要内容,如果未能解决你的问题,请参考以下文章

glutBitmapCharacter() 文本没有出现在屏幕上?

使用 glutBitmapCharacter() 绘制文本关闭 opengl 程序

glutBitmapCharacter 文本位置错误

如何在 3D 对象(如球体)上绘制文本

为啥这个链表程序没有给出任何输出?

链表:在不给出整个链表头结点的情况下,删除单链表中的某个节点