[Pipet Users] the make problem is a bit better

Jean-Marc Valin jmvalin at locusdialogue.com
Thu Jun 7 13:37:58 EDT 2001

> Ok, that works too... but now, when it gets to bl/plugins, it does the same
> thing.   I replaced the UIDocument::scanDL with scanDL as before, but now
> I'm getting this message:
> plugin_sensor_PL_main.c:86: warning: implicit declaration of function `int
> scanDL(...)'
> /bin/sh ../libtool --mode=link c++  -g -ggdb -D__x86__ -Wall  -o PL
> BL2PLSK.o plugin_sensor_PL_main.o -L/usr/lib -lgthread -lglib -lpthread
> -lomniORB3 -lomnithread -ltcpwrapGK -L/usr/local/lib -L/opt/overflow/lib
> -lflow -lxml -lz
> c++ -g -ggdb -D__x86__ -Wall -o PL BL2PLSK.o plugin_sensor_PL_main.o
> -L/usr/lib -lgthread -lglib -lpthread -lomniORB3 -lomnithread -ltcpwrapGK
> -L/usr/local/lib -L/opt/overflow/lib -lflow -lxml -lz
> plugin_sensor_PL_main.o: In function `BL2PL_i::upload(char const *)':
> /root/newtmp/piper/src/bl/plugins/plugin_sensor_PL_main.c:86: undefined
> reference to `scanDL'
> I tried #include "path.h" but it doesn't help the problem...  Could someone
> help me with this?

OK, now it's a different problem. It's not the compilation but the link.
It cannot find scanDL function in the -lflow library. I think it has
something to do with C vs C++. plugin_sensor_PL_main.c is a C file.
First, I don't even understand how it could have worked before, if
plugin_sensor_PL_main.c was using a C++ function (UIDocument::scanDL()).
Also, I thought the BL had been converted to C++. So there are two
options now: the first is to convert plugin_sensor_PL_main.c to a C++
file. The other (which I'll apply anyway) is to change (int

vector<string> envList(char *envName);
void scanDL(bool debug=false);


extern "C" {
vector<string> envList(char *envName);
void scanDL(bool debug=false);

Anyway, I think this is a BL issue more than a PL (Overflow) issue.


P.S. Could you run:

nm /opt/overflow/lib/libflow.so | grep scanDL

and send me the results

More information about the Pipet-Users mailing list