我正在开发一个程序,正在使用带有SDL和OpenGL的微型C编译器。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
#endifAPIENTRY扩展:
/* APIENTRY */
#if !defined(APIENTRY)
# if defined(__WIN32__)
# define APIENTRY __stdcall
# else
# define APIENTRY
# endif
#endif我唯一设置的编译器标志是-b、-g、-Wall和一些包含目录。
我能得到一些帮助吗?如果需要的话,我很乐意提供更多的信息。
发布于 2011-10-26 08:56:33
我真的不确定我是如何解决这个问题的。我认为这与我传递的一些包含目录有关。不管怎么说,问题已经解决了。
发布于 2012-11-03 12:48:37
为了与Windows system 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.发布于 2012-01-14 04:07:06
我也遇到了类似的问题(我希望用分号代替)。在导入OpenGL头之前尝试使用#include <windows.h>;这似乎已经为我解决了这个问题。
https://stackoverflow.com/questions/7882871
复制相似问题