On Nov 9, 2009, at 6:21 PM, Keren Lasker wrote:
> hi, > > Compiling an external exe, I am getting an error in the linkage > stage, basically saying that helper can not see misc: > /usr/bin/ld: warning: libimp_misc.so, needed by /viola1/home/kerenl/ > bioinformatics/projects/imp/build/lib/libi\ > mp_helper.so, not found (try using -rpath or -rpath-link) > /viola1/home/kerenl/bioinformatics/projects/imp/build/lib/ > libimp_helper.so: undefined reference to `IMP::misc:\ > :get_module_version_info()' > /viola1/home/kerenl/bioinformatics/projects/imp/build/lib/ > libimp_helper.so: undefined reference to `IMP::misc:\ > :LowestRefinedPairScore::LowestRefinedPairScore(IMP::Refiner*, > IMP::PairScore*)' > collect2: ld returned 1 exit status > scons: *** [bin/clustering_coefficient] Error 1 How are you linking against imp_helper? How did you tell your executable to find imp misc/helper? Do you set the rpath in your executable or use imppy.sh? Is misc in the same dir as helper?
If you just passed the full path to imp helper to the link call for the exe then the compiler has no way to find other libraries. You should link as is done by binaries created within (say benchmarks/bin) and either - run everything using imppy.sh - or install imp in some place and add that place to your LD_LIBRARY_PATH and link search path
> I tried changing the dependency order in the SCons files, but did > not succeed - can someone help ? Link order only matters for static linking. ]