私の環境は Fedora 21 です。 http://www.cogl3d.org/hello.htmlの hello チュートリアルを試してみると、次のように表示されます。
例の構築
上記のコードを hello.c という名前のファイルに保存すると、次のように例をコンパイルできます。
gcc -o こんにちは hello.c
pkg-config --cflags --libs cogl2 glib-2.0
しかし、cogl2 ライブラリはどこにありますか?
cogl ライブラリが含まれていない場合:
[xiaobai@xiaobai cogl]$ gcc -o hello hello.c `pkg-config --cflags --libs glib-2.0`
hello.c:1:23: fatal error: cogl/cogl.h: No such file or directory
#include <cogl/cogl.h>
^
compilation terminated.
[xiaobai@xiaobai cogl]$
試してみdnf search cogl
ましたが、cogl しかありません。cogl2:
[xiaobai@xiaobai cogl]$ dnf search cogl
[sudo] password for xiaobai:
================================================================= N/S Matched: cogl ==================================================================
cogl.x86_64 : A library for using 3D graphics hardware to draw pretty pictures
cogl.i686 : A library for using 3D graphics hardware to draw pretty pictures
cogl-doc.noarch : Documentation for cogl
cogl-devel.x86_64 : cogl development environment
cogl-devel.i686 : cogl development environment
[xiaobai@xiaobai cogl]$
cogl.h も検索しますが、そのような cogl2 もありません。
[xiaobai@xiaobai yum]$ dnf provides */cogl.h
cogl-devel-1.18.2-9.fc21.x86_64 : cogl development environment
Repo : @System
cogl-devel-1.18.2-9.fc21.i686 : cogl development environment
Repo : fedora
cogl-devel-1.18.2-9.fc21.x86_64 : cogl development environment
Repo : fedora
[xiaobai@xiaobai yum]$
pkg-config を使用して cogl も cogl2 も見つけることができません。
[xiaobai@xiaobai cogl]$ pkg-config --cflags --libs cogl2 cogl
Package cogl2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `cogl2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cogl2' found
Package cogl was not found in the pkg-config search path.
Perhaps you should add the directory containing `cogl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cogl' found
[xiaobai@xiaobai cogl]$
だから私は単にcoglを試しました:
$ gcc -o hello hello.c
pkg-config --cflags --libs glib-2.0
-I/usr/include/cogl/
、多くのエラーメッセージが表示されます:
[xiaobai@xiaobai cogl]$ gcc -o hello hello.c `pkg-config --cflags --libs glib-2.0` -I/usr/include/cogl/
hello.c:45:17: error: unknown type name ‘CoglOnscreen’
frame_event_cb (CoglOnscreen *onscreen,
^
hello.c:46:17: error: unknown type name ‘CoglFrameEvent’
CoglFrameEvent event,
^
hello.c:47:17: error: unknown type name ‘CoglFrameInfo’
CoglFrameInfo *info,
^
hello.c:59:11: error: unknown type name ‘CoglOnscreen’
dirty_cb (CoglOnscreen *onscreen,
^
hello.c:60:17: error: unknown type name ‘CoglOnscreenDirtyInfo’
const CoglOnscreenDirtyInfo *info,
^
hello.c: In function ‘main’:
hello.c:86:14: warning: assignment makes pointer from integer without a cast
data.ctx = cogl_context_new (NULL, &error);
^
hello.c:92:13: warning: assignment makes pointer from integer without a cast
data.fb = cogl_onscreen_new (data.ctx, 640, 480);
^
hello.c:98:19: warning: assignment makes pointer from integer without a cast
data.pipeline = cogl_pipeline_new (data.ctx);
^
hello.c:100:17: warning: assignment makes pointer from integer without a cast
cogl_source = cogl_glib_source_new (data.ctx, G_PRIORITY_DEFAULT);
^
hello.c:105:39: error: ‘frame_event_cb’ undeclared (first use in this function)
frame_event_cb,
^
hello.c:105:39: note: each undeclared identifier is reported only once for each function it appears in
hello.c:110:39: error: ‘dirty_cb’ undeclared (first use in this function)
dirty_cb,
^
[xiaobai@xiaobai cogl]$
どんな助けでも大歓迎です。
[更新] @CYB3R ソリューションを試しましたが、まだ運がありません:
[xiaobai@xiaobai cogl]$ pkg-config --cflags --libs cogl-2.0-experimental glib-2.0
-pthread -I/usr/include/cogl -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lcogl -lgmodule-2.0 -pthread -lgdk_pixbuf-2.0 -lgobject-2.0 -lwayland-egl -lwayland-client -lgbm -ldrm -lwayland-server -lEGL -lX11 -lXext -lXdamage -lXfixes -lXcomposite -lXrandr -lglib-2.0
[xiaobai@xiaobai cogl]$ gcc -pthread -I/usr/include/cogl -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lcogl -lgmodule-2.0 -pthread -lgdk_pixbuf-2.0 -lgobject-2.0 -lwayland-egl -lwayland-client -lgbm -ldrm -lwayland-server -lEGL -lX11 -lXext -lXdamage -lXfixes -lXcomposite -lXrandr -lglib-2.0 hello.c
hello.c:45:17: error: unknown type name ‘CoglOnscreen’
frame_event_cb (CoglOnscreen *onscreen,
^
hello.c:46:17: error: unknown type name ‘CoglFrameEvent’
CoglFrameEvent event,
^
... #same errors like previous
[xiaobai@xiaobai cogl]$