0

私はこのような状況にあり、推奨される MinGW+msys 構成で Netbeans 6.8 を使用し、コンパイルは機能します。今、私はglutを使用しているプロジェクトを持っているので、「プロジェクトのプロパティ - >ビルド - >リンカー - >ライブラリ」でライブラリopengl32、glut32、glu32、gdi32、winmm、mingw32をリンクし、手動ですべての.libファイルを選択し、コンパイルが効く!

しかし、その後、いくつかの他の h および cpp ファイルをプロジェクト (テクスチャ ローダーなど) に追加しました。これらは glut を使用し、それを #include し、IDE は問題ないように見えますが、コードをコンパイルしようとすると、エラーが発生します。これらのファイルをコンパイルします:

.../Terrain.cpp:132: undefined reference to `_imp__glVertex3fv'
.../Terrain.cpp:135: undefined reference to `_imp__glTexCoord2d'
.../Terrain.cpp:139: undefined reference to `_imp__glNormal3fv'
.../Terrain.cpp:140: undefined reference to `_imp__glVertex3fv'

そしてもっとたくさん。私の理解では、これは lib ファイルがリンクされていないことを意味しますが、それらはプロジェクト内でリンクされており、メイン ファイルはこれらすべてを問題なく使用できます。

私はすべてを試しましたが、おそらく何かが欠けています。また、プロジェクト (vs2010 のファイルから新しいプロジェクトを作成する) は、vs2010 コンパイラを使用してコンパイルできます。

助けてください。NetBeans でライブラリを MinGW とリンクする経験のある人はいますか?

4

2 に答える 2

1

「答え」は、これ、あれ、またはその他の前にwindows.hを含めないことです。__stdcall 規則が glut32.dll で使用されていることを確認する必要があります。

次の場所で、MinGW を使用して Win32 用の GLUT ライブラリをビルドする手順に従います。

http://www.mingw.org/wiki/HOWTO_Compile_the_OpenGL_Utility_Toolkit_GLUT_for_Win32_with_MinGW

于 2010-12-23T00:32:03.750 に答える
0

glut.h を使用するすべてのファイルには、gl.h または glut.h. をインクルードする前に、windows.hをインクルードする必要があります。

かなりの時間を費やしましたが、誰かの役に立てば幸いです(ここでも解決策を探していました)。

注:セクション 2.070 のリンク テキストで回答を見つけました。...undefined reference to ...

c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : 
error C2054: expected '(' to follow 'WINGDIAPI'
c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : 
error C2085: 'APIENTRY' : not in formal parameter list

)

于 2010-05-13T16:12:13.733 に答える