我正在爲自己製作一個靜態庫供我在C++ OpenGL Freeglut中製作遊戲/模擬器時使用。我打電話給這個圖書館GLUtils。它增加了struct Vector
和struct Color
和namespace GL
,其中包含諸如void GL::drawShape(Vector *points, Color *colors, int size)
等的方法。我正在用Visual Studio 2017中的freeglut的靜態版本編譯GLUtils,它編譯得很好,當我編譯我的測試用法時,它編譯得很好,當我運行它時,它工作正常,直到我添加了opengl的東西。該測試仍然編譯好,但它與Application failed to start properly
加載時崩潰,當我去調試它,崩潰之前main被加載。使用Dependency Walker並打開test.exe,唯一顯示紅色的是freeglut.dll下的kernel32.dll,但kernel32.dll依賴項已滿足,並且GLUtils.lib不在列表中(但我認爲這是因爲它是靜態的)。如何鏈接自定義靜態庫?
即使當我註釋掉GLUtils.cpp的實現並保持身體作爲
void GL::drawShape(Vector * points, ColorRGBA * colors, int size)
{
for (int i = 0; i < size; i++)
{
//glColor4f(colors[i].r, colors[i].g, colors[i].b, colors[i].a);
//glVertex3f(points[i].x, points[i].y, points[i].z);
}
}
將Test.exe仍用同樣的錯誤崩潰。
我如何將GLUtils.lib和freeglut.lib鏈接到Test.exe?
使用#pragma評論(LIB, 「GLUtils.lib」),並做freeglut太 – Asesh
相同的Test.cpp的或我使用什麼文件?在添加opengl之前,我不必那樣做。 –
您的測試項目應鏈接到這些庫。所以它放在哪個文件中並不重要 – Asesh