2

作成中のプログラムで GLEW を使用しようとしていますが、コンパイラはそれをコンパイルせず、代わりにこの行で大量のエラーをスローしgcc -g -c glew.c -o glew.oます。これは私のメイクファイルです:

MY_LIBS = 
glewex: glew.o main.o glew.h
    g++ main.o glew.o glew.h -o glewex $(MY_LIBS)
glew.o: glew.c
    gcc -g -c glew.c -o glew.o
main.o: main.cpp
    g++ -g -c main.cpp -o main.o

次のような何百ものエラーを出力するだけです。

__glewActiveTexture が dllimport 属性なしで再宣言されました: 以前のインポートは無視されました [ -Wattributes ]

4

2 に答える 2

4

これを試して:

gcc -g -DGLEW_STATIC -c glew.c -o glew.o

これにより、DLL のインポート/エクスポートの装飾が宣言に追加されるのを防ぐことができます。

于 2012-09-14T18:42:18.047 に答える
-2

プロジェクトのコンパイラ入力にライブラリ ソース ファイルを追加したくない場合。ライブラリをリンカー入力のリストに追加する必要があります。静的 (libglew.a) または動的 (-lglew) のいずれかです。

つまりどちらか

gcc -o … -lglew

また

gcc -o … libglew.a

GLEW を静的にリンクする場合-DGLEW_STATIC、コンパイル ユニット (.o ファイル) を生成するコンパイラ オプションを追加する必要があります。

于 2012-09-14T19:48:54.283 に答える