C++ Glew LNK2019 Error
C++ Glew LNK2019 Error
每当我尝试编译和运行我的c++ SDL/glow游戏时,我都会得到链接器错误:LNK2019。我已经在MSDN中研究过了,它说它是c++文件中的C代码,没有包装在外部'C'{…} .
我正在使用Visual Studio 2015 Community和最新版本的Glew,在Windows 8.1上。
这是我一直得到的错误:
LNK2019: unresolved external symbol _imp_glClear@4 referenced in function "private void _thiscall MainGame::draw(void)" (?draw@MainGame@2AAeXXZ)
LNK2019: unresolved external symbol _imp_glClearColor@16 referenced in function "private: void _thiscall MainGame::initSystems(void)" (?initSystems@MainGame@@AAEXXZ)
LNK2019: unresolved external symbol _imp_glClearDepth@8 referenced in function "private void _thiscall MainGame::draw(void)" (?draw@MainGame@@AAEXXZ
MainGame.cpp:
#include "MainGame.h"
void fatalError(std::string errorString) {
std::cout << "FATAL ERROR:" << errorString << std::endl;
std::cout << "Enter any key to quit...";
int tmp;
std::cin >> tmp;
SDL_Quit();
exit(1);
}
MainGame::MainGame() {
window = nullptr;
width = 960;
height = 540;
gameState = GameState::PLAY;
}
MainGame::~MainGame() {
}
void MainGame::run() {
initSystems();
gameLoop();
}
void MainGame::initSystems() {
SDL_Init(SDL_INIT_EVERYTHING);
window = SDL_CreateWindow("Acorn", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);
if (window == nullptr) {
fatalError("Failed to Initialize the Window");
}
SDL_GLContext glContext = SDL_GL_CreateContext(window);
if (glContext == nullptr) {
fatalError("Failed to Initialize OpenGL");
}
GLenum error = glewInit();
if (error != GLEW_OK) {
fatalError("Failed to Initialize Glew");
}
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
}
void MainGame::processInput() {
SDL_Event sdlevent;
while (SDL_PollEvent(&sdlevent)) {
switch (sdlevent.type) {
case SDL_QUIT:
gameState = GameState::QUIT;
break;
}
}
}
void MainGame::draw() {
glClearDepth(1.0);
glClear(GL_COLOR_BUFFER_BIT);
glClear(GL_DEPTH_BUFFER_BIT);
SDL_GL_SwapWindow(window);
}
void MainGame::gameLoop() {
while (gameState != GameState::QUIT) {
draw();
processInput();
}
}
MainGame.h:
#pragma once
#include <GL/glew.h>
#include <SDL/SDL.h>
#include <iostream>
#include <string>
enum class GameState {
PLAY,
QUIT
};
class MainGame {
public:
MainGame();
~MainGame();
void run();
private:
GameState gameState;
int width, height;
SDL_Window* window;
void initSystems();
void gameLoop();
void processInput();
void draw();
};
这个问题看起来不像与glew
或SDL
相关,链接器无法找到的函数是opengl库的一部分。
与opengl的链接是否正确?您需要将opengl32.lib
添加到附加依赖的链接器,如这里所述。
我曾经在使用glow时遇到过类似的问题,但解决方案是自己编译glow .c,并链接生成的glow .o。这涉及到几行makefile等,但由于您使用不同的工具链,您需要做一些不同的事情。
相关文章:
- ERROR LNK2001 AND LNK2019
- "error LNK2019: unresolved external fatal"和"error LNK1120: 1 unresolved externals"
- error LNK2019 ARuco and OpenCV VS2010 c++
- 错误 : "error LNK2019: unresolved external symbol"
- 如何修复" Error LNK2019 : unresolved external symbol ... "
- 问题:"error LNK2019: unresolved external symbol"
- VS 2012 Error LNK2019
- LNK2019 error in C++
- C++ error LNK2019
- Visual Studio 2012 - 尝试包含 .lib 时"Error LNK2019 unresolved external symbol"
- 获取"error LNK2019: unresolved external symbol ... "
- DHCP C++ error LNK2019
- Visual Studio 2013 error LNK2019
- 我得到这个错误是Visual Studio C++ :: "error LNK2019: unresolved external symbol"
- LNK 1120 + LNK2019 Error
- visual studio lnk2019 and 1120 error
- 链接器错误"... .obj : error LNK2019: unresolved external symbol referenced in function"
- 获取"error LNK2019: unresolved external symbol"
- 6 "error LNK2019: unresolved external symbol"
- Visual C++ Error: LNK2019, LNK2028 and LNK1120