私は、ゲームやシミュレータをOpenGLフリーグルートで作ったときに自分用のスタティックライブラリを作っています。私はこのライブラリをGLUtilsと呼んでいます。とりわけvoid GL::drawShape(Vector *points, Color *colors, int size)
などの方法を含むstruct Vector
とstruct Color
とnamespace GL
が追加されています。 Visual Studio 2017で静的バージョンのfreeglutを使ってGLUtilsをコンパイルしています。テストの使用法をコンパイルするとうまくコンパイルされ、うまくコンパイルされます。また、実行したときにopenglを追加するまでうまくいきました。テストはまだうまくコンパイルされましたが、ロード時にApplication failed to start properly
でクラッシュし、デバッグするときにメインがロードされる前にクラッシュしました。 Dependency Walkerを使用してtest.exeを開くと、freeglut.dllの下にあるkernel32.dllが表示されますが、kernel32.dllの依存関係は満たされています。GLUtils.libはリストにありません(しかし、静的)。カスタムスタティックライブラリをリンクするには?
場合でも、私はGLUtils.cppで実装をコメントアウトし、TEST.EXEはまだ同じエラーでクラッシュし
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);
}
}
として体を残します。
GLUtils.libとfreeglut.libをTest.exeにどのようにリンクさせるのですか?
使用の#pragmaコメント(libに、 "GLUtils.lib")とfreeglutのために同じことを行うすぎ – Asesh
Test.cppの中や私が使用している何のファイル?私はOpenGLのものを追加する前にそれをする必要はありませんでした。 –
テストプロジェクトはこれらのライブラリにリンクする必要があります。だから、どのファイルに置いても問題ありません – Asesh