DirectFB on cygwin(その6)DirectFBをデバッグ版でコンパイルして追ってみる $ ./configure --enable-network=no --enable-debug=yes (!) DirectFB/core/system: No system found! を出しているのは、
src/core/system.c:102: D_ERROR("DirectFB/core/system: No system found!\n");
とのこと。失敗の原因をたぐっていこう。 dfb_system_lookup という関数は、
dfb_system_lookup()
{
DirectLink *l;
direct_modules_explore_directory( &dfb_core_systems ); ※1
direct_list_foreach( l, dfb_core_systems.entries ) {
…※2
}
if (!system_module) {
D_ERROR("DirectFB/core/system: No system found!\n");
return DFB_NOIMPL;
}
の※2で、system_module に情報が取得されるはずなのだけど、 dfb_core_systems.entries が0のためLoopの中に入らず system_module になにも取得されていない。
(gdb) bt
#0 dfb_system_lookup () at system.c:78
#1 0x004112af in dfb_core_create (ret_core=0x22cc18) at core.c:245
#2 0x00401bfb in DirectFBCreate (interface=0x491040) at directfb.c:193
#3 0x00401091 in main (argc=1, argv=0x8315b0) at simple.c:96
(gdb) p dfb_core_systems
$15 = {lock = 0x14, path = 0x484608 "/usr/local/lib/directfb-1.0-0/systems",
abi_version = 9, entries = 0x0, loading = 0x0}
/usr/local/lib/directfb/systems の下をみてみると、 $ ls /usr/local/lib/directfb-1.0-0/systems/ libdirectfb_x11.a libdirectfb_x11.la libdirectfb_x11.o それっぽいのがあるじゃあないですか。これじゃだめなのかな? direct_modules_explore_directory の処理をみてみる。 #ifdef DYNAMIC_LINKING の場合、末尾が so のファイルを探している。 確かに上の3つのファイルはどれも該当しない。 #ifdef DYNAMIC_LINKING でない場合は、dfb_core_systems の中身は変更されないようだ。 あれ?これだと static link にした場合はどうなるんだろ? 結局同じような失敗で終わってしまいそうな気がするけど、そもそもここは通らないんだろうか? それと、/usr/local/lib/directfb-1.0-0/systems/ にあった、 拡張子 'la' ってなんだろう? 中身をみてみるとテキストファイルのようです。 $ less libdirectfb_x11.la # libdirectfb_x11.la - a libtool library file # Generated by ltmain.sh - GNU libtool 1.5.23b (1.1220.2.437 2007/02/17 09:08:45) # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='' # Names of this library. library_names='' # The name of the static archive. old_library='libdirectfb_x11.a' # Libraries that this one depends upon. dependency_libs=' -L/usr/X11R6/lib -lX11 -lXext /usr/local/lib/libdirectfb.la /u sr/local/lib/libfusion.la /usr/local/lib/libdirect.la -lz -lpthread' # Version information for libdirectfb_x11. current=0 age=0 revision=0 # Is this an already installed library? installed=yes # Should we warn about portability when linking against -modules? shouldnotlink=yes # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/local/lib/directfb-1.0-0/systems' (END) これはなんだろう? なぞは深まるばかりです。 トップページへ |
鮫洲曙町会ホームページ |