LearnOpenGL編譯鏈接問題總結

 最近在重新溫習openGL的相關知識,在按照LearnOpenGL配置環境的時候遇到了一些問題,現在把相關問題總結一下,防止以後忘了。

GLFW按照文檔給的鏈接下載源碼編譯即可,將編譯好的glew3.lib和include的拷貝到相應文件夾下;

GLEW由於編譯總是出錯,於是就直接下載了二進制文件使用了。

接下來就是測試源碼的時候了,LearnOpenGL中要求新建空項目,但是測試中需要用到std庫,在包含“stdafx.h”後出現很多問題,於是就放棄了新建空項目,改爲新建win32控制檯應用程序,控制檯應用程序的好處是,他可以爲我們配置“stdafx.h”所需的環境。

接下來有出現了其他問題,解決方法如下:

1、error LNK2019: 無法解析的外部符號 __imp__glViewport@16,該符號在函數 _main 中被引用

解決方式在輸入中添加opengl32.lib,之後即可正常運行了。

 

順便貼出測試代碼:

// OpenGLStudy1.cpp : 定義控制檯應用程序的入口點。
//

#include "stdafx.h"
#include <iostream>
// GLEW
#define GLEW_STATIC
#include <GLEW/GL/glew.h>
// GLFW
#include <GLFW/glfw3.h>

int main()
{
	glfwInit();
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
	glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);

	GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr);
	if (window == nullptr)
	{
		std::cout << "Failed to create GLFW window" << std::endl;
		glfwTerminate();
		return -1;
	}
	glfwMakeContextCurrent(window);


	glewExperimental = GL_TRUE;
	if (glewInit() != GLEW_OK)
	{
		std::cout << "Failed to initialize GLEW" << std::endl;
		return -1;
	}

	int width, height;
	glfwGetFramebufferSize(window, &width, &height);

	glViewport(0, 0, width, height);

	while (!glfwWindowShouldClose(window))
	{
		glfwPollEvents();
		glfwSwapBuffers(window);
	}

	glfwTerminate();
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章