為了ViewML特地裝了Redhat 7.1。
拿Fltk 1.0.11來build --> OK!!! (這在Debian 3.1 是有Error的!!!)。
測試test下的application也沒問題。
拿ViewML來build。說沒有libwwwconf。所以要build libwww。
libwww-5.2.8 build OK. make install 也OK!
ViewML :
make
一樣,先是找不到config.h然後 fltk下include path還是都錯! 根本就跟Debian 3.1下的狀況一樣!!!
拿Viewml-0.22來試試:
configure 的script有些問題,所以要手動修改configure出來的makeinclude檔案
加入fltk source 到include path
加入libwww/include到include path
修改LD path,libwww的path多include。
其實 --with-fltk 改到fltk source的path,不是fltk install 的path就可以解決一些fltk include的問題。
./configure --enable-static --with-libwwwconfig=/home/charles/libwww/bin --with-fltk=/home/charles/fltk-1.0.11
再修改makeinclude,在INCLUDE PATH中加入/home/charles/libwww/include,讓他找到xmlparser.h.
結果:出現
/usr/lib/libtiff.a(tif_jpeg.o): In function `TIFFjpeg_create_compress':
tif_jpeg.o(.text+0x101): undefined reference to `jpeg_CreateCompress'
/usr/lib/libtiff.a(tif_jpeg.o): In function `TIFFjpeg_set_defaults':
......
查,是沒有link jpeg library的關係(!@#$)。
修 改makeinclude,在library部份加入-ljpeg。這部份error消失,剩下..
/home/charles/libwww/lib/libwwwapp.a(HTInit.o): In function `HTConverterInit':
/home/charles/w3c-libwww-5.2.8/Library/src/HTInit.c:84: undefined reference to `HTXML_new'
/home/charles/w3c-libwww-5.2.8/Library/src/HTInit.c:85: undefined reference to `HTXML_new'
這個google的結果是config用了"without-expat",但是我configure沒 家這個參設呀。到libwww/lib下
$ ar t libwwwxml.a
查一下libwwwxml包含的module有出現HTXML.o -- 這是含HTXML_new的module。用libwww-conf --libs看看。也有加入"-lwwwxml"。
將libwwwxml的module解出來,看看裡面的symbol table..
$ ar x libwwwxml.a
$ nm HTXML.o
有出現HTML_new..
So ?
因為是Libwww的source reference到的所以換個新版的libwww試試....從5.2.8升級到5.4.0
一樣config 和install後,重新configure viewml-0.22。修改makeinclude,加入"-ljpeg"。
make ---- ? include path要加入 xmlparser.h所在目錄的問題沒了。
結果: 還是一樣有XTHML_new 問題。
check reference 的source code : HTinit.c,發現是在定義expat時才會compile in。
所以 ? 重新config libwww , 加入--without-expat。
再make clean, make viewml-0.22。
OK!!
作個結論好了:
viewml-0.22 版 : 沒有include par.h 問題
viewml makeinclude library option 加上 -ljpeg : 解決 TIFF jpeg_Compress問題。
viewml configure --with-fltk=是fltk source code的path,不是install的path : 解決config.h 問題
viewml configure --enable-static : 解決libwww.so 沒有load問題。
libwww-5.4.0 版 : 沒有xmlparser.h 問題
libwww configure --without-expat : 解決 HTXML_new 問題
fltk-1.0.11 : 呃。忘了。但是用fltk1.1.0的話,buildviewml-0.22有"unsolved external " Error.
(雖然fltk-1.0.11的test demo有些不能run,但是fltk-1.1.0的demo都OK)
重點是
gcc 是2.96, Libc, Libc++ 也是?