Компилятор OpenGL + Tiny C: "ожидаемый" - PullRequest
0 голосов
/ 25 октября 2011

Я работаю над программой и использую 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 ]

3 голосов
/ 03 ноября 2012

Для связи с системными библиотеками Windows, 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 голос
/ 14 января 2012

У меня была похожая проблема (хотя вместо точки с запятой). Попробуйте #include <windows.h> до импорта заголовков OpenGL; это, кажется, исправило это для меня.

1 голос
/ 26 октября 2011

Я не совсем уверен, как я это исправил.Я думаю, что это было связано с некоторыми из каталогов включения, которые я передавал.Во всяком случае, проблема ушла.

...