0

私は初心者の C プログラマーで、グラフィックスを扱うのはこれが初めてです。MacBook Pro (OS X バージョン 10.6.8 を実行) で適切に動作する OpenGL 機能を含むコードが提供されましたが、Linux (CentOS バージョン 2.16.0) を実行しているオフィス マシンではコンパイルされません。どちらの場合も、gcc を使用しています。Mac でコンパイルするときは、次のオプションを渡します。

-lcurses -lX11 -lGL -lm -fast 
-I/usr/X11R6/include/ -I/usr/X11R6/include/GL -L/usr/X11R6/lib 
-L/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries 
-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib

以下のオプションを指定して Linux でコンパイルしようとすると、

-lcurses -lX11 -lGL -lm

次のエラーが表示されます

cem_master.c:159: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
cem_master.c:160: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
cem_master.c:161: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token

次のコード行を参照します。

static WINDOW *mainwnd;
static WINDOW *screen;
WINDOW *my_win;

何が間違っているかについてのアイデアはありますか?これを理解するためのヒントはありますか?


コメントに応えて、最初の行からエラーの原因となっているセクションまでのソース コードの縮小バージョンを次に示します。インクルードと / Display Crap / セクションの間のがらくたをたくさん切り取りましたが、それでもエラーが発生します。

#include <stdlib.h>      
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <GL/glx.h>
#include <GL/gl.h>
#include <unistd.h>

/* Display Crap */
static WINDOW *mainwnd;
static WINDOW *screen;
WINDOW *my_win;

float   xcellwidth;
float   ycellwidth;
int     current_getch;
int     xplotoff;
int     yplotoff;

Display                 *dpy;
Window                  root;
XVisualInfo             *vi;
Colormap                cmap;
XSetWindowAttributes    swa;
Window                  win;
GLXContext              cx;
XEvent                  event;
4

1 に答える 1

0

WINDOWそして図書館SCREENからです。ncursesあなた#include <ncurses.h>はそれを使用する必要があります。

于 2013-01-22T21:49:11.123 に答える