在FreeBSD 9上为FireFox 10构建GWT插件

时间:2012-03-12 15:37:54

标签: firefox gwt gcc freebsd

我尝试按照http://www.sigil.org/gwt-on-freebsd/上的说明为最新版本的Firefox构建插件。但是,链接失败并出现错误:

g++ -o build/FreeBSD_x86_64-gcc3-ff100/libgwt_dev_ff100.so build/FreeBSD_x86_64-gcc3-ff100/ExternalWrapper.o build/FreeBSD_x86_64-gcc3-ff100/ModuleOOPHM.o build/FreeBSD_x86_64-gcc3-ff100/FFSessionHandler.o build/FreeBSD_x86_64-gcc3-ff100/JavaObject.o build/FreeBSD_x86_64-gcc3-ff100/JSRunner.o build/FreeBSD_x86_64-gcc3-ff100/Preferences.o build/FreeBSD_x86_64-gcc3-ff100/XpcomDebug.o ../common/libcommon64.a -fPIC -shared -m64 -L../../../plugin-sdks/gecko-sdks/gecko-10.0.0/FreeBSD_x86_64-gcc3/lib -Wl,-rpath-link,../../../plugin-sdks/gecko-sdks/gecko-10.0.0/FreeBSD_x86_64-gcc3/lib -lxpcomglue_s -lxpcom -lnspr4 -lmozalloc -lxul
    build/FreeBSD_x86_64-gcc3-ff100/ExternalWrapper.o: In function `GenericClassInfo':
/home/bofh/tmp/gwt_build/trunk/plugins/xpcom/../../../plugin-sdks/gecko-sdks/gecko-10.0.0/FreeBSD_x86_64-gcc3/include/nsIClassInfoImpl.h:132: undefined reference to `vtable for GenericClassInfo'
/usr/bin/ld: build/FreeBSD_x86_64-gcc3-ff100/ExternalWrapper.o: relocation R_X86_64_PC32 against `_ZTV16GenericClassInfo' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
gmake: *** [build/FreeBSD_x86_64-gcc3-ff100/libgwt_dev_ff100.so] Error 1

我不确定为什么会抱怨缺少-fPIC标志,因为它存在于g ++的命令行中。

请建议。

2 个答案:

答案 0 :(得分:1)

问题是因为使用了错误的SO库 - 由libxul安装的那个没有提供所需的功能,所以我从firefox安装中复制了libxul.so和libxulglue_s.so

我能够成功构建插件。

=====

毕竟,我能够为FreeBSD 9 / Firefox 10 / AMD64构建最新的GWT插件,请参阅https://github.com/jdevelop/gwt-dev-firefox-freebsd

答案 1 :(得分:0)

为什么不通过端口安装它; /usr/ports/www/xpi-gwt-dev-plugin

如果您不想这样做,至少尝试应用端口使用的补丁。补丁files/patch-config.mkfiles/patch-xpcom-Makefile看起来与此问题相关。