<br><br><div class="gmail_quote">2011/1/17 David Lichteblau <span dir="ltr"><<a href="mailto:david@lichteblau.com" target="_blank">david@lichteblau.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


Hi,<br>
<div><br>
Quoting Amyn Bennamane (<a href="mailto:amynbe@gmail.com" target="_blank">amynbe@gmail.com</a>):<br>
</div><div>> Sorry, I am new to mailing lists and forgot to cc the list.<br>
><br>
> Thank you for the fast answer.<br>
><br>
> > What version of kdebindings/smoke are you using?<br>
><br>
> 4.5.5-1<br>
<br>
</div>if that means kdebindings from KDE 4.5, it should work.  (At least in<br>
the sense that it is also the version Debian ships, which mostly works<br>
for others.)<br>
<div><br>
> >  Does "ldd<br>
> > libcommonqt.so" show that it links to the right libsmoke*.so files?<br>
><br>
>  ldd libcommonqt.so | grep smoke<br>
> shows nothing<br>
<br>
</div>I can't make sense of that.  Either way, ldd would indicate whether the<br>
linker could find the smoke libraries or not.<br>
<br>
Did compilation actually work?<br>
<br>
Are there any compilation warnings if you run:<br>
cd commonqt && make clean && qmake && make<br>
<div><br>
>  Are<br>
> > library paths set up so that the linker would also find them at runtime?<br>
> ><br>
> ><br>
> I'm not skilled in library stuff so I 'm not sure I will answer as you<br>
> expect:<br>
> I have 123 libsmoke*.so files in /usr/lib, that is the folder used in the<br>
> CommonQt Makefile (in the -L linker option), so I assume the path is<br>
> correct?<br>
<br>
</div>Lacking other options, I'd personally try to uninstall the<br>
system-provided smoke and compile it manually, just to see whether it<br>
makes a difference:<br>
<br>
1. git clone git://<a href="http://anongit.kde.org/smokegen" target="_blank">anongit.kde.org/smokegen</a><br>
   cd smokegen<br>
   cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/opt/smoke<br>
   make install<br>
   cd ..<br>
<br>
2. export LD_LIBRARY_PATH=/opt/smoke/lib:$LD_LIBRARY_PATH<br>
<br>
3. git clone git://<a href="http://anongit.kde.org/smokeqt" target="_blank">anongit.kde.org/smokeqt</a><br>
   cd smokeqt<br>
   cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/opt/smoke<br>
   make install<br>
<br>
4. cd /path/to/commonqt<br>
   make clean<br>
   qmake LIBS=-L/opt/smoke/lib/ INCLUDEPATH=/opt/smoke/include/<br>
   make<br>
<br>
Keep in mind that LD_LIBRARY_PATH still needs to be set when invoking<br>
the Lisp later.<br>
<br>
ldd output for me is then:<br>
<br>
------------------------------------------------------------------------<br>
$ ldd libcommonqt.so | grep smoke<br>
        libsmokeqtcore.so.3 => /opt/smoke/lib/libsmokeqtcore.so.3 (0x00007f7e8d1d9000)<br>
        libsmokebase.so.3 => /opt/smoke/lib/libsmokebase.so.3 (0x00007f7e8b123000)<br>
------------------------------------------------------------------------<br>
<font color="#888888"><br>
<br>
David<br>
</font></blockquote></div><br>Hello, <br>Thanks to your precious help, I solved my problem. It seems the problem was coming from CommonQt side:<br><br>First, not important but I needed to mv libcppparser.so to /usr/lib/ to build smokeqt (the 2nd step you mentioned).<br>


<br>Second, still nothing related to smoke in libcommonqt.so. but <br>ldd -r libcommonqt.so outputs<br>[...]<br>undefined symbol: _ZN5Smoke8classMapE   (./libcommonqt.so)<br>undefined symbol: _ZN5Smoke15NullModuleIndexE   (./libcommonqt.so)<br>


<br>so I see that ldd can tell me which symbols are undefined (yeah newbie here)<br><br>Third,
 checking the Makefile, your ldd output gave me the idea of adding as 
linker option -lsmokebase along with the already existing 
-lsmokeqtcore. (So next time added it in <a href="http://commonqt.pro">commonqt.pro</a> and same effect)<br><br>Then it worked, no more undefined symbol in libcommonqt.so and the tutorial runs :D , but note this:<br><br>

--------------------------------------------------------------------------------------------------------------<br>
$ ldd libcommonqt.so | grep smoke<br>        libsmokebase.so.3 => /opt/smoke/lib/libsmokebase.so.3 (0xb78a1000)<br>
--------------------------------------------------------------------------------------------------------------<br><br>i.e only smokebase appears.<br><br>That's all. I wonder why I need to explicitly add smokebase as a shared lib, you may have an idea?<br>



<br>
Thanks again.<br><br clear="all"><br>-- <br>Amyn<br><br>