2011-10-24 24 views
0

私はプログラムに取り組んでおり、SDLとOpenGLのTiny Cコンパイラを使用しています。 TCCにはopengl用のヘッダーが含まれていないので、Visual C++とMinGWの両方からコピーしようとしました。それらの両方が次のエラーでコンパイルに失敗:両方のファイルでOpenGL + Tiny Cコンパイラ: "、expected"

v:/exe/tcc/include//GL/gl.h:1081: ',' expected

ライン1081は、次のとおりです。GLAPIため

GLAPI void APIENTRY glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w); 
GLAPI void APIENTRY glVertex2dv(const GLdouble *v); // <-- line 1081 
GLAPI void APIENTRY glVertex2fv(const GLfloat *v); 

拡張:APIENTRYため

/* GLAPI, part 1 (use WINGDIAPI, if defined) */ 
#if defined(__WIN32__) && defined(WINGDIAPI) 
# define GLAPI WINGDIAPI 
#endif 

/* GLAPI, part 2 */ 
#if !defined(GLAPI) 
# if defined(_MSC_VER)      /* Microsoft Visual C++ */ 
# define GLAPI __declspec(dllimport) 
# elif defined(__LCC__) && defined(__WIN32__) /* LCC-Win32 */ 
# define GLAPI __stdcall 
# else          /* Others (e.g. MinGW, Cygwin, non-win32) */ 
# define GLAPI extern 
# endif 
#endif 

が拡張:

/* APIENTRY */ 
#if !defined(APIENTRY) 
# if defined(__WIN32__) 
# define APIENTRY __stdcall 
# else 
# define APIENTRY 
# endif 
#endif 

私が設定している唯一のコンパイラフラグは、-b、-g、-Wall、およびいくつかのディレクトリを含みます。

私はこれについて少し助けてもらえますか?必要に応じてより多くの情報を提供しています。

+4

Cプリプロセッサの終了後に 'GLAPI'と' APIENTRY'はどのように展開されますか? – sarnold

+3

と1080行目と1082行目には何がありますか?エラー行番号が前のエラーから伝播されることがあります。 – dmh2000

+0

$ 0.02には '__declspec(dllimport)'が含まれています。他のコンパイラからヘッダーをコピーして動作させるだけでは不十分です。小さなC固有のソリューション(または別のコンパイラに切り替える)を探す方がよいでしょう。または__stdcall。 – user786653

答えて

1

私はこれをどのように修正したのか分かりません。私はそれが通過していたインクルードディレクトリのいくつかと関係があると思います。とにかく、問題はなくなりました。

1

私には同様の問題がありました(代わりにセミコロンが必要です)。 OpenGLヘッダーがインポートされる前に#include <windows.h>を試してください。それは私のためにそれを固定しているようだ。

3

WindowsシステムDLLとリンクするために、TCCはライブラリの代わりにインポート定義 ファイル(.def)を使用します。

The included 'tiny_impdef' program may be used to make additional 
.def files for any DLL. For example: 

    tiny_impdef.exe opengl32.dll 

Put opengl32.def into the tcc/lib directory. Specify -lopengl32 at 
the TCC commandline to link a program that uses opengl32.dll.