OpenGL + Tiny C编译器:“,预期”

时间:2011-10-24 22:49:11

标签: c opengl tcc

我正在开发一个程序,正在使用Tiny C Compiler和SDL以及OpenGL。 TCC不包含opengl的头文件,所以我尝试从Visual C ++和MinGW中复制它们。它们都无法编译,并出现以下错误:

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

两个文件中的第1081行是:

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 );

GLAPI的扩展:

/* 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的扩展:

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

我设置的唯一编译器标志是-b,-g,-Wall和一些包含目录。

我可以帮忙吗?如果需要,我很乐意提供更多信息。

3 个答案:

答案 0 :(得分: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.

答案 1 :(得分:1)

我不确定我是如何解决这个问题的。我认为这与我传递的一些包含目录有关。无论如何,问题已经消失。

答案 2 :(得分:1)

我有类似的问题(但期待分号)。在导入OpenGL标头之前尝试#include <windows.h>;这似乎已经为我修好了。