Я пытаюсь создать текст в окне с помощью функции. Когда у меня есть glutBitmapCharacter() в коде, я получаю эту ошибку: LNK2019 unresolved external symbol __imp__glutBitmapCharacter@8 referenced in function "void __cdecl drawText(char const *,int,int,int)" (?drawText@@YAXPBDHHH@Z)
Функция рисования текста:
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.
1 ответ
Проблема заключалась в том, что я использовал 32-битные библиотеки и 64-битные библиотеки вместе, что также вызывало другие ошибки. Я исправил это, загрузив все необходимые 64-битные библиотеки, а затем перезапустив свой проект как 64-битный проект.
Похожие вопросы
Связанные вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.
glut
в приведенном выше коде, так что, может быть, в ссылке отсутствует только одна библиотека?#include <GL\freeglut.h>
привело бы к ошибке компиляции, а не к ошибке компоновщика. Как связать программу?