Hi, I recently broke up the CPP DATA block of a perl module I wrote into 6 smaller, organized '.c' files. I did this for several reasons -- better syntax highlighting in my editor, easier to navigate than scrolling through several thousand lines of code, and with luck it would only recompile the pieces that changed, rather than the whole thing.
Anyway, This is how I _am_ doing it, which does not work: use Inline (Config => DIRECTORY => '/home/me/this_project/inline'); use Inline CPP => "/home/me/this_project/basics.c"; use Inline CPP => "/home/me/this_project/draw.c"; use Inline CPP => "/home/me/this_project/analysis.c"; use Inline CPP => "/home/me/this_project/output.c"; use Inline CPP => "/home/me/this_project/vector.c"; use Inline CPP => "/home/me/this_project/remotesensing.c"; All 6 files include a header file, "this_project.h", which has function prototypes of all the subroutines in all the '.c' files. However I get an error -- Can't load '/build_path/module_pm_9ba1.so' for module module_pm_9ba1: /build_path/HIGHQFPC_pm_9ba1.so: undefined symbol: _Z13float_comparePKvS0_ at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229. at /usr/lib/perl5/site_perl/5.8.0/Inline.pm -- Running the .so through the linux util nm reveals a list of my subroutines, but only those defined or called in 'analysis.c' are present. These include the 10 or so subs defined in 'analysis.c' and one NOT defined there, 'float_compare', which is a simple comparison function for qsort, defined in 'basics.c'. No other subroutines are listed. What I find odd is that it's not the first file I included, or the last, but the third which made it in. It's the first alphabetically, and maybe that's it, but I don't know why. Anyway, am I including the files wrong? The documentation on cpan.org is rather vague on the subject of including source _files_, and I searched Google and usenet without much luck on the subject. I'm hoping someone here could help. Thanks! -- David Christopher Asher