我尝试按照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 ++的命令行中。
请建议。
答案 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.mk
和files/patch-xpcom-Makefile
看起来与此问题相关。