On Monday 04 December 2006 22:35, Folkert van Heusden wrote: > > > Nothing builds with this library. > > > > That's not true. The boinc-app-seti package builds with this package > > (therefore I'm downgrading the severity of this bug). Maybe you should > > have a look at boinc-app-seti's makefiles to figure out how to use BOINC > > libraries and headers. > > I.m.h.o. if just doing something like -lboinc (or whatever), it should > be in the (at least Debian-) documentation of that library. > > If a library is only usable for 1 application, it doesn't make sense to > have a seperate -dev library.
Hi, I think that Frank has a valid point here and you, Folkert, have done a good job in minimising the issue. It should not be overly difficult, but somebody should do it, that far we are in sync, to describe the dependencies independently from the Makefile. This are the _shared_ libraries used by Debian's [EMAIL PROTECTED] application: pc02:/nfshome/moeller # ldd /usr/lib/boinc-app-seti/setiathome_enhanced linux-gate.so.1 => (0xb7f93000) libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7f3e000) libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7e04000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7dff000) libfftw3f.so.3 => /usr/lib/libfftw3f.so.3 (0xb7d21000) libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7d0b000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7d02000) libz.so.1 => /usr/lib/libz.so.1 (0xb7cee000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7c09000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7bf5000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7bd0000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7bc5000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7a91000) /lib/ld-linux.so.2 (0xb7f94000) But no prime candidate jumps to mind, here, so I presumed something static. [EMAIL PROTECTED]:~$ grep -r RPC_CLIENT /usr/include/ /usr/include/BOINC/lib/gui_rpc_client.h:class RPC_CLIENT { /usr/include/BOINC/lib/gui_rpc_client.h: RPC_CLIENT(); /usr/include/BOINC/lib/gui_rpc_client.h: ~RPC_CLIENT(); /usr/include/BOINC/lib/gui_rpc_client.h: RPC_CLIENT* rpc_client; /usr/include/BOINC/lib/gui_rpc_client.h: RPC(RPC_CLIENT*); (Sidenote: I installed the boinc-dev package for you and your report only :o) ) Ok, we found the culprit. The remaining question is what boinc library is reponsible for the implementation of the constructor. This is investigated by a one-line script like the following: for i in `dpkg -L boinc-dev | grep libb`; do echo $i; nm $i | grep -i RPC; done using this information and your example code [EMAIL PROTECTED]:~/NO_INB_BACKUP/src$ cat > b.C && g++ -I /usr/include/BOINC/ b.C -o b -L /usr/share/boinc-dev/lib -lboinc > #include <BOINC/lib/gui_rpc_client.h> > int main(int argc, char *argv[]) > { > RPC_CLIENT test; > return 0; > } > [EMAIL PROTECTED]:~/NO_INB_BACKUP/src$ compiles just happily. Folkert, since I know Frank to be very busy with his daytime activitities and to my knowledge he is not actively programming boinc applications himself these days, please consider to write a little tutorial for Debian (and upstream) based on your experiences. Many greetings Steffen