我正在为自己制作一个静态库供我在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