7

Eclipse C /C++でいくつかのOpenGL関数を利用してみました。GlClearとしてのいくつかの「標準」関数はeclipseによって認識されますが、glBindBuffer()やglEnableVertexAttribArray()のような他の関数は認識されません。それらは赤で下線が引かれているだけです。

ただし、コンパイルは成功しますが、この不穏な下線があります。

glut、GL、GLU、GLEWをリンクしましたが、オペレーティングシステムはarchlinuxです。私は日食3.7.2を使用します

これらのエラーを回避するために、さらに何をする必要がありますか?

4

3 に答える 3

11

プロジェクトを右クリックして、ポップアップメニューで[インデックス]>[再構築]を試してください。

于 2013-05-05T20:20:26.180 に答える
3

下線は、C++インデクサーが記号を認識しないことを意味します。これが役立つかどうかを確認します。

Eclipseで#ifdef内のコードにインデックスを付けるにはどうすればよいですか....#endif

OpenGL 2.0関数を使用するために、ソースファイルでGL_GLEXT_PROTOTYPESシンボルを定義しましたが、インデクサーはそれを取得しませんでした。プロジェクト設定の[プロジェクトプロパティ]>[C/C++一般]>[パスとシンボル]で定義する必要がありました。その後、インデックスを再構築した後、エラーは消えました。

于 2013-08-02T21:15:37.120 に答える
0

Eclipse CDTを使用して実際にプロジェクトをビルドしている場合、最も簡単な解決策は、Eclipseにビルドプロセスからインクルードパスを自動的に学習させることです。

プロジェクトのプロパティで、[C / C++ビルド]->[検出オプション]に移動し、[パスとシンボルの検出を自動化する]チェックボックスをオンにします。

glBindBuffer()およびglEnableVertexAttribArray()は、GL/gl.hではなくGL/glext.hで宣言されます。#include <GL / gl.h>のある行にカーソルを置き、それを右クリックして[宣言を開く]を選択すると、Eclipseはヘッダーと見なすヘッダーを開く必要あります。実装では、<GL/glext.h>が<GL/gl.h>に自動的に含まれる場合と含まれない場合があります。確認する価値があります。

于 2012-09-26T17:39:10.923 に答える