Fox-ToolKitをcygwinで

インストール手順

    1. foxを解凍する
    2. ./configure --disable-shared
    3. make
    4. make install

makefileの書き方

たくさんのオプションを指定する必要がある

OPT1 = -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" \
	-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"fox\" \
	-DVERSION=\"1.4.17\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 \
	-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 \
	-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 \
	-DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 \
	-DX_DISPLAY_MISSING=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1 \
	-DHAVE_DIRENT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 \
	-DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SELECT_H=1 -DWIN32=1 \
	-DHAVE_ZLIB_H=1 -DHAVE_BZLIB_H=1 -DHAVE_VSSCANF=1 -DHAVE_VSNPRINTF=1 \
	-DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 \
	-DFOX_THREAD_SAFE=1 -D_POSIX_PTHREAD_SEMANTICS -D_GNU_SOURCE -DHAVE_ZLIB_H=1 \
	-DHAVE_BZ2LIB_H=1 -Wall -W -Woverloaded-virtual -Wformat -DHAVE_GL_H=1 \
	-DHAVE_GLU_H=1 -mwindows -e _mainCRTStartup

OPT2 = /usr/local/lib/libFOX-1.4.a -lcomctl32 -lwsock32 -lwinspool -lmpr \
	-lpthread -lz -lbz2 -lopengl32 -lglu32

all:
	g++ ${OPT1} -o hello.exe hello.cpp ${OPT2}

実行結果


DLLの使用状態を調べる

cygwinのDLLを使用している
-mno-cygwinを使ってみるが、ビルドできない
cygwin.dllがないと動かないようだ

bash-3.00$ objdump -p hello.exe |grep DLL
 vma:            Hint    Time      Forward  DLL       First
	DLL Name: cygwin1.dll
	DLL Name: cygwin1.dll
	DLL Name: ADVAPI32.DLL
	DLL Name: GDI32.dll
	DLL Name: KERNEL32.dll
	DLL Name: SHELL32.DLL
	DLL Name: USER32.dll

関連サイト

cygwin.dllを使わない方法が書いてある
http://ishii.mydns.jp/modules/bwiki/index.php?FOX-GUI#content_1_7

問題点

FXFilelistを使ったり、開く・閉じるダイアログを表示しようとすると
落ちる。file名の扱いに問題がある?