Visual Studio 2010 Express で OpenGL を使用して、C++ で 2D サイド スクローラーを作成しています。コードをコンパイルしようとすると、正しくビルドされますが、main() 関数で初期化している GLFW 関数でリンカー エラーが発生します。これが私のコードです:
#include <iostream>
#include <ctime>
#include <GL\glfw.h>
#include "Player.h"
void render();
void update();
Player Player1;
//Cross platform sleep implementation
void _sleep(double ms)
{
double st = clock();
if(ms <= 0)
ms = 10;
while(clock() < (ms + st));
}
int main(int argc, char** argv)
{
std::cout <<"Loading Prized Fighter"<< std::endl;
glfwInit(); //Initialize GLFW
//Create GLFW window
if(glfwOpenWindow(800, 600, 5, 6, 5, 0, 8, 0, GLFW_WINDOW) != GL_TRUE)
std::cout << "Error creating window!" << std::endl;
//Set window title
glfwSetWindowTitle("Prized Fighter");
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//Start main game loop
//This calls the functions which update objects and render them to the screen
while(true)
{
update();
render();
glfwSwapBuffers(); //Switch buffers (double rendering)
_sleep(10.0); //Let a bit of CPU time for other processes
}
return 0;
}
/*
- Render function -
Used to draw objects to the screen
*/
void render()
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); //Color to clear the screen
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//TODO: Draw stuff here
Player1.draw();
}
/*
- Update function -
Updates objects; states, locations, etc
*/
void update()
{
//TODO: Update objects here
Player1.update();
}
コンパイルすると、次のエラーが発生します。
1>------ ビルド開始: プロジェクト: プライズ ファイター、構成: Win32 のデバッグ ------ 1>main.obj: エラー LNK2019: 未解決の外部シンボル _glfwSwapBuffers が >function _WinMain@8 で参照されています
1>main.obj : エラー LNK2019: >関数 _WinMain@8 で参照されている未解決の外部シンボル _glfwSetWindowTitle
1>main.obj : エラー LNK2019: >関数 _WinMain@8 で参照されている未解決の外部シンボル _glfwOpenWindow
1>main.obj : エラー LNK2019: 関数で参照されている未解決の外部シンボル _glfwInit >_WinMain@8
1>MSVCRTD.lib(crtexew.obj): エラー LNK2019: 未解決の外部シンボルWinMain@16 >関数で参照 _ _tmainCRTStartup
1>c:\users\brennan\documents\visual studio 2010\Projects\Prized Fighter\Debug\Prized >Fighter.exe: 致命的なエラー LNK1120: 5 未解決の外部情報 ========== ビルド: 0 成功、 1 失敗、0 最新、0 スキップ ==========
リンク中に何が問題になっていますか - コードにエラーがありますか?