pinkshirt / firebreath

Automatically exported from code.google.com/p/firebreath
0 stars 0 forks source link

can't compile helloword plugin under linux #21

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1.sh fbgen.py - leave most of all to default value
2.sh prepmake.sh
3.cd build; make
and receive compilation error
-----------
scanning dependencies of target hellowordplugin                                 

[ 90%] Building CXX object
projects/hellowordplugin/CMakeFiles/hellowordplugin.dir/hellowordpluginAPI
[ 92%] Building CXX object
projects/hellowordplugin/CMakeFiles/hellowordplugin.dir/hellowordplugin.cp
[ 94%] Building CXX object
projects/hellowordplugin/CMakeFiles/hellowordplugin.dir/FactoryMain.cpp.o       

[ 96%] Building CXX object
projects/hellowordplugin/CMakeFiles/hellowordplugin.dir/X11/FactoryMainX11
[ 98%] Building CXX object
projects/hellowordplugin/CMakeFiles/hellowordplugin.dir/X11/np_x11main.cpp
Linking CXX shared library ../../bin/hellowordplugin/nphellowordplugin.so       

NpapiPlugin/libHWP_NpapiPlugin.a(NpapiPluginX11.cpp.o): In function
`FB::Npapi::NpapiPluginX11::SetWindow(_NPWindow*)':                       
NpapiPluginX11.cpp:(.text+0x3ce): undefined reference to
`_createPluginWindow(unsigned int)'                                             

../../PluginCore/libPluginCore.a(PluginWindowX11.cpp.o): In function
`FB::PluginWindowX11::PluginWindowX11(unsigned int)':                    
PluginWindowX11.cpp:(.text+0x8e): undefined reference to `gtk_plug_new'         

PluginWindowX11.cpp:(.text+0x9b): undefined reference to
`gtk_drawing_area_new'                                                          

PluginWindowX11.cpp:(.text+0xa8): undefined reference to
`gtk_object_get_type'
PluginWindowX11.cpp:(.text+0xb0): undefined reference to
`gtk_widget_get_type'
PluginWindowX11.cpp:(.text+0xc6): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0xd1): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0xf2): undefined reference to
`gtk_widget_add_events'
PluginWindowX11.cpp:(.text+0x111): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0x136): undefined reference to
`g_signal_connect_data'
PluginWindowX11.cpp:(.text+0x146): undefined reference to
`gtk_widget_show'
PluginWindowX11.cpp:(.text+0x153): undefined reference to
`gtk_container_get_type'
PluginWindowX11.cpp:(.text+0x169): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0x174): undefined reference to
`gtk_container_add'
PluginWindowX11.cpp:(.text+0x184): undefined reference to
`gtk_widget_show'
../../PluginCore/libPluginCore.a(PluginWindowX11.cpp.o): In function
`FB::PluginWindowX11::PluginWindowX11(unsigned int)':
PluginWindowX11.cpp:(.text+0x1fc): undefined reference to `gtk_plug_new'
PluginWindowX11.cpp:(.text+0x209): undefined reference to
`gtk_drawing_area_new'
PluginWindowX11.cpp:(.text+0x216): undefined reference to
`gtk_object_get_type'
PluginWindowX11.cpp:(.text+0x21e): undefined reference to
`gtk_widget_get_type'
PluginWindowX11.cpp:(.text+0x234): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0x23f): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0x260): undefined reference to
`gtk_widget_add_events'
PluginWindowX11.cpp:(.text+0x27f): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0x2a4): undefined reference to
`g_signal_connect_data'
PluginWindowX11.cpp:(.text+0x2b4): undefined reference to
`gtk_widget_show'
PluginWindowX11.cpp:(.text+0x2c1): undefined reference to
`gtk_container_get_type'
PluginWindowX11.cpp:(.text+0x2d7): undefined reference to
`g_type_check_instance_cast'
PluginWindowX11.cpp:(.text+0x2e2): undefined reference to
`gtk_container_add'
PluginWindowX11.cpp:(.text+0x2f2): undefined reference to
`gtk_widget_show'
collect2: ld returned 1 exit status
make[2]: *** [bin/hellowordplugin/nphellowordplugin.so] Error 1
make[1]: *** [projects/hellowordplugin/CMakeFiles/hellowordplugin.dir/all]
Error 2
make: *** [all] Error 2

What is the expected output? What do you see instead?
compiled test plugin

What version of the product are you using? On what operating system?
I'm using Fedora 11 x86_64
gtk+-devel-1.2.10-68.fc11.x86_64
gtk2-devel-2.16.6-2.fc11.x86_64

hg summary
parent: 271:9bf9668f27d5 tip
 Do not touch CMAKE_SHARED_LIBRARY_PREFIX. It's supposed to be read-only.
The patch submitted by Kalev Lember.
branch: default
commit: (clean)
update: (current)

Please provide any additional information below.

Original issue reported on code.google.com by bignikita on 27 Jan 2010 at 8:04

GoogleCodeExporter commented 9 years ago
Hi!

The build was broken because of the missing GTK+ dependencies.
I have pushed an update that should fix it. Try again with the latest head.
Please note that You should regenerate the project files because some of the
generated code needs to be changed as well.

Sincerely

Original comment by ant...@gmail.com on 30 Jan 2010 at 1:06

GoogleCodeExporter commented 9 years ago
yes, it worked
I have compiled examples successfully. FBTestPlugin - worked in firefox under 
linux

Original comment by bignikita on 1 Feb 2010 at 11:33

GoogleCodeExporter commented 9 years ago
i followed create a new plugin project and got this error after
cd build
make

i am trying it on suse enterprise desktop 11

test:~/Desktop/firebreath-1.0rc3 # sh prepmake.sh 
Building projects
-- checking for module 'gtk+-2.0'
--   found gtk+-2.0, version 2.14.4
Firebreath solution dir: /root/Desktop/firebreath-1.0rc3/build
Generating project UnitTest++
Generating project NPAPIHost in /root/Desktop/firebreath-1.0rc3/build/NpapiHost
Generating project ScriptingCore in 
/root/Desktop/firebreath-1.0rc3/build/ScriptingCore
Generating project UnitTest_ScriptingCore in
/root/Desktop/firebreath-1.0rc3/build/ScriptingCoreTest
Generating project PluginCore in 
/root/Desktop/firebreath-1.0rc3/build/PluginCore
Searching projects/*: found projects/ffax
Configuring plugin project projects/ffax in
/root/Desktop/firebreath-1.0rc3/build/projects/ffax
Generating plugin configuration files in
/root/Desktop/firebreath-1.0rc3/build/projects/ffax/gen
Generating project ffax in /root/Desktop/firebreath-1.0rc3/build/projects/ffax
Generating project FAC_NpapiPlugin in
/root/Desktop/firebreath-1.0rc3/build/projects/ffax/NpapiPlugin
Generating project FAC_UnitTest_NpapiPlugin in
/root/Desktop/firebreath-1.0rc3/build/projects/ffax/NpapiPluginTest
-- Configuring done
-- Generating done
-- Build files have been written to: /root/Desktop/firebreath-1.0rc3/build
test:~/Desktop/firebreath-1.0rc3 # cd build/
test:~/Desktop/firebreath-1.0rc3/build # make
Scanning dependencies of target UnitTest++
[  1%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/AssertException.cpp.o
[  3%] Building CXX object 
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/Test.cpp.o
[  5%] Building CXX object 
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/Checks.cpp.o
[  7%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/TestRunner.cpp.o
[  9%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/TestResults.cpp.o
[ 11%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/TestReporter.cpp.o
[ 12%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/TestReporterStdout.cpp.o
[ 14%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/ReportAssert.cpp.o
[ 16%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/TestList.cpp.o
[ 18%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/TimeConstraint.cpp.o
[ 20%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/TestDetails.cpp.o
[ 22%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/MemoryOutStream.cpp.o
[ 24%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/DeferredTestReporter.cpp.o
[ 25%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/DeferredTestResult.cpp.o
[ 27%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/XmlTestReporter.cpp.o
[ 29%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/CurrentTest.cpp.o
[ 31%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/Posix/SignalTranslator.cpp.o
[ 33%] Building CXX object
projects/UnitTest++/CMakeFiles/UnitTest++.dir/src/Posix/TimeHelpers.cpp.o
Linking CXX static library libUnitTest++.a
[ 33%] Built target UnitTest++
Scanning dependencies of target NPAPIHost
[ 35%] Building CXX object 
NpapiHost/CMakeFiles/NPAPIHost.dir/NpruntimeHostFuncs.cpp.o
[ 37%] Building CXX object NpapiHost/CMakeFiles/NPAPIHost.dir/NpapiHost.cpp.o
[ 38%] Building CXX object 
NpapiHost/CMakeFiles/NPAPIHost.dir/NpResourceHostFuncs.cpp.o
[ 40%] Building CXX object 
NpapiHost/CMakeFiles/NPAPIHost.dir/NpBrowserHostFuncs.cpp.o
Linking CXX static library libNPAPIHost.a
[ 40%] Built target NPAPIHost
Scanning dependencies of target ScriptingCore
[ 42%] Building CXX object
ScriptingCore/CMakeFiles/ScriptingCore.dir/DOM/JSAPI_DOMDocument.cpp.o
[ 44%] Building CXX object
ScriptingCore/CMakeFiles/ScriptingCore.dir/DOM/JSAPI_DOMWindow.cpp.o
[ 46%] Building CXX object
ScriptingCore/CMakeFiles/ScriptingCore.dir/DOM/JSAPI_DOMNode.cpp.o
[ 48%] Building CXX object
ScriptingCore/CMakeFiles/ScriptingCore.dir/DOM/JSAPI_DOMElement.cpp.o
[ 50%] Building CXX object 
ScriptingCore/CMakeFiles/ScriptingCore.dir/Util/JSArray.cpp.o
[ 51%] Building CXX object 
ScriptingCore/CMakeFiles/ScriptingCore.dir/JSAPIAuto.cpp.o
[ 53%] Building CXX object 
ScriptingCore/CMakeFiles/ScriptingCore.dir/JSAPI.cpp.o
[ 55%] Building CXX object 
ScriptingCore/CMakeFiles/ScriptingCore.dir/JSAPISimple.cpp.o
[ 57%] Building CXX object
ScriptingCore/CMakeFiles/ScriptingCore.dir/BrowserObjectAPI.cpp.o
[ 59%] Building CXX object
ScriptingCore/CMakeFiles/ScriptingCore.dir/AsyncBrowserCall.cpp.o
Linking CXX static library libScriptingCore.a
[ 59%] Built target ScriptingCore
Scanning dependencies of target UnitTest_ScriptingCore
[ 61%] Building CXX object
ScriptingCoreTest/CMakeFiles/UnitTest_ScriptingCore.dir/ScriptingCoreTest.cpp.o
Linking CXX executable ../bin/UnitTest_ScriptingCore
Running unit test DefaultSuite::MetaTest...
Running unit test DefaultSuite::VariantTest...
Running unit test DefaultSuite::VariantListTest...
Running unit test DefaultSuite::VariantMapTest...
Running unit test DefaultSuite::AutoPtrTest...
Running unit test DefaultSuite::JSAPIAuto_Methods...
Running unit test DefaultSuite::JSArrayTest...
Running unit test DefaultSuite::TypeIDMapTest_voidptr...
Running unit test DefaultSuite::TypeIDMapTest_int...
Running unit test DefaultSuite::TypeIDMapTest_setid...
Running unit test DefaultSuite::TypeIDMapTest_testlong...
Success: 11 tests passed.
Test time: 0.00 seconds.
[ 61%] Built target UnitTest_ScriptingCore
Scanning dependencies of target PluginCore
[ 62%] Building CXX object 
PluginCore/CMakeFiles/PluginCore.dir/PluginEventSink.cpp.o
[ 64%] Building CXX object 
PluginCore/CMakeFiles/PluginCore.dir/PluginEventSource.cpp.o
[ 66%] Building CXX object 
PluginCore/CMakeFiles/PluginCore.dir/PluginWindow.cpp.o
[ 68%] Building CXX object PluginCore/CMakeFiles/PluginCore.dir/PluginCore.cpp.o
[ 70%] Building CXX object 
PluginCore/CMakeFiles/PluginCore.dir/PluginEvent.cpp.o
[ 72%] Building CXX object 
PluginCore/CMakeFiles/PluginCore.dir/BrowserPlugin.cpp.o
[ 74%] Building CXX object 
PluginCore/CMakeFiles/PluginCore.dir/X11/PluginWindowX11.cpp.o
/root/Desktop/firebreath-1.0rc3/src/PluginCore/X11/PluginWindowX11.cpp: In 
member
function ‘void FB::PluginWindowX11::setWindowPosition(int, int, int, int)’:
/root/Desktop/firebreath-1.0rc3/src/PluginCore/X11/PluginWindowX11.cpp:50: 
warning:
taking address of temporary
/root/Desktop/firebreath-1.0rc3/src/PluginCore/X11/PluginWindowX11.cpp: In 
member
function ‘void FB::PluginWindowX11::setWindowClipping(int, int, int, int)’:
/root/Desktop/firebreath-1.0rc3/src/PluginCore/X11/PluginWindowX11.cpp:72: 
warning:
taking address of temporary
Linking CXX static library libPluginCore.a
[ 74%] Built target PluginCore
Scanning dependencies of target FAC_NpapiPlugin
[ 75%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/NPJavascriptObject.cpp.
o
[ 77%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/NPObjectAPI.cpp.o
[ 79%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/NpapiBrowserHost.cpp.o
[ 81%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/NpapiPlugin.cpp.o
[ 83%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/NpapiPluginModule.cpp.o
[ 85%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/NpapiPluginModule_NPP.c
pp.o
[ 87%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/NpapiTypes.cpp.o
[ 88%] Building CXX object
projects/ffax/NpapiPlugin/CMakeFiles/FAC_NpapiPlugin.dir/X11/NpapiPluginX11.cpp.
o
Linking CXX static library libFAC_NpapiPlugin.a
[ 88%] Built target FAC_NpapiPlugin
Scanning dependencies of target ffax
[ 90%] Building CXX object projects/ffax/CMakeFiles/ffax.dir/ffaxAPI.cpp.o
[ 92%] Building CXX object projects/ffax/CMakeFiles/ffax.dir/FactoryMain.cpp.o
[ 94%] Building CXX object projects/ffax/CMakeFiles/ffax.dir/ffax.cpp.o
[ 96%] Building CXX object 
projects/ffax/CMakeFiles/ffax.dir/X11/FactoryMainX11.cpp.o
[ 98%] Building CXX object 
projects/ffax/CMakeFiles/ffax.dir/X11/np_x11main.cpp.o
/root/Desktop/firebreath-1.0rc3/projects/ffax/X11/np_x11main.cpp: In function 
‘char*
NP_GetMIMEDescription()’:
/root/Desktop/firebreath-1.0rc3/projects/ffax/X11/np_x11main.cpp:27: warning:
deprecated conversion from string constant to ‘char*’
Linking CXX shared library ../../bin/ffax/npffax.so
[ 98%] Built target ffax
Scanning dependencies of target FAC_UnitTest_NpapiPlugin
[100%] Building CXX object
projects/ffax/NpapiPluginTest/CMakeFiles/FAC_UnitTest_NpapiPlugin.dir/NpapiPlugi
nTest.cpp.o
Linking CXX static library libFAC_UnitTest_NpapiPlugin.a
/bin/sh: ../../../bin/FAC_UnitTest_NpapiPlugin: No such file or directory
make[2]: *** [projects/ffax/NpapiPluginTest/libFAC_UnitTest_NpapiPlugin.a] 
Error 127
make[1]: ***
[projects/ffax/NpapiPluginTest/CMakeFiles/FAC_UnitTest_NpapiPlugin.dir/all] 
Error 2
make: *** [all] Error 2
test:~/Desktop/firebreath-1.0rc3/build # 

what could possibly be the cause and what should be the solution...thanks.

Original comment by sanjeet...@gmail.com on 2 Feb 2010 at 5:51

GoogleCodeExporter commented 9 years ago
i again used make command....and to my surprise it didn't give any error....and 
then
i symnlinked the binary .so file to firefox plugin directory...and it started
communicating with the javascript...

Original comment by sanjeet...@gmail.com on 2 Feb 2010 at 1:58

GoogleCodeExporter commented 9 years ago
I'm too followed create a new plugin project and got error 
in X11
Linking CXX shared library ../../bin/e_Sign/npe_Sign.so                         

NpapiPlugin/libSCC_NpapiPlugin.a(NpapiPluginX11.cpp.o): In function
`FB::Npapi::NpapiPluginX11::SetWindow(_NPWindow*)':                       
NpapiPluginX11.cpp:(.text+0x3ce): undefined reference to
`_createPluginWindow(unsigned int)'                                             

collect2: ld returned 1 exit status                                             

make[2]: *** [bin/e_Sign/npe_Sign.so] Error 1                                   

make[1]: *** [projects/e_Sign/CMakeFiles/e_Sign.dir/all] Error 2                

make: *** [all] Error 2 

diff ./fbgen/src/X11/FactoryMainX11.cpp ./projects/e_Sign/X11/FactoryMainX11.cpp
9a10
> #include <gtk/gtk.h>
19c20
< FB::PluginWindowX11 *_createPluginWindow(Window win)
---
> FB::PluginWindowX11 *_createPluginWindow(GdkNativeWindow win)

Original comment by bignikita on 3 Feb 2010 at 6:43

GoogleCodeExporter commented 9 years ago
I have posted a fix for the fbgen source; it should read GdkNativeWindow; it is 
in
revision 95ad2efd65

Original comment by taxilian on 5 Feb 2010 at 6:03

GoogleCodeExporter commented 9 years ago
Actually I think it would be a good idea to include a FB specific header from 
FactoryMain and use some more generic typedef. Eg: FBNativeWindowHandler .

Othervise all sub-projects will be broken again when the pointer type changes 
(which 
might happen for example when we start supporting QT based plugins instead of 
GTK).

What do You think?

Original comment by ant...@gmail.com on 9 Feb 2010 at 8:24

GoogleCodeExporter commented 9 years ago
I am marking this fixed for now; let's continue this discussion on the mailing 
list
and create a new issue when we decide how to best solve the dependency issue.

If someone can confirm that current we do build, (not that it's ideal, that's 
another
issue), please mark this as Status: Verified.

Original comment by taxilian on 9 Feb 2010 at 7:08