1:下載源碼:http://developers.facebook.com/fbopen/
2:根據readme的說明,把fbml所需的軟件下載到dependencies目錄下
3:fbml的php擴展的編譯,本身有個腳本,不過一般情況下都不能順利通過那腳本編譯成功
錯誤提示1:
gconvert.c:48:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv
解決辦法:
修改build-all.py
'glib-2.14.6.tar.gz': ("./configure", "make", "sudo make install"),
改成
'glib-2.14.6.tar.gz': ("./configure --with-libiconv=gnu", "make", "sudo make install"),
錯誤提示2:
nspr4 -lpthread -ldl -L../../dist/bin -lmozjs -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/local/lib -lcairo -Wl,--version-script -Wl,../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic -ldl -lm
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa47): In function `nsCanvasRenderingContext2D::Destroy()':
: undefined reference to `XFreePixmap'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x141a): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XRenderFindStandardFormat'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x1440): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XListPixmapFormats'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x1467): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XFree'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x149d): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XCreatePixmap'
collect2: ld returned 1 exit status
gmake[3]: *** [libgklayout.so] Error 1
gmake[3]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout/build'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout'
gmake[1]: *** [tier_9] Error 2
gmake[1]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla'
make: *** [default] Error 2
解決辦法:
修改dependencies/mozilla/layout/build/Makefile.inifdef
MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) \ $(NULL)
改成ifdef MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) \ -L/usr/X11R6/lib -lX11 -lXrender \ $(NULL)
這個錯誤一般發生在firefox編譯的時候,我一般都手動解壓縮firefox軟件,然後修改Makefile.in,然後在build-all.py中屏蔽解壓縮firefox的語句就行
錯誤提示3:
In file included from js/jsarena.c:49:
js/jsbit.h:173: error: size of array 'js_static_assert_line_173' is negative
make[1]: *** [js/jsarena.o] Error 1
make: *** [src] Error 2
解決辦法:
修改 src/js/jsbit.h 第173行
S_STATIC_ASSERT(sizeof(unsigned long long) == sizeof(JSUword));
改成
S_STATIC_ASSERT(sizeof(unsigned long) == sizeof(JSUword));
這個錯誤發生在firefox編譯成功後,進行fbml的編譯時候發生的,如果你用build-all.py編譯,不想進行前面的編譯,可以根據腳本屏蔽前面的編譯。