Re: [classad-users] Linker Problems


Date: Fri, 23 Oct 2009 10:08:43 -0500
From: Ole Weidner <oweidner@xxxxxxxxxxx>
Subject: Re: [classad-users] Linker Problems
Ha! You were right - there is indeed an '--enable-namespace' configure flag which defaults to *no* if you don't specify it. After recompiling the libs my little code snippet compiles and links just fine.

Thanks,
Ole



On Oct 22, 2009, at 5:10 PM, Matthew Farrellee wrote:

I've no great suggestions. Just know that you can compile the library with and without namespaces. It might be that you accidentally compiled without them. Maybe you can try not using the classad namespace in your program and it'll work.

Best,


matt

Ole Weidner wrote:
Hey,

I use these flags: -DWANT_NAMESPACES -DWANT_CLASSAD_NAMESPACE but if I
us -lclassad_ns as you're suggesting, I get the following error:

ld: library not found for -lclassad_ns

Which sounds right to me, since there's no libclassad_ns.dylib in the
installation directory. Are there any configure flags that control the
whole namespace stuff when I build libclassad?

Thanks,
Ole

On Oct 22, 2009, at 2:32 PM, Matthew Farrellee wrote:

Ole Weidner wrote:
Hi,

I'm trying to compile this little test program (extracted from an m4
macro):

#include <classad_distribution.h>

int main ()
{
  classad::ClassAd ad; classad::ClassAdParser parser;

  return 0;
}

With this gcc command line:

g++ -o conftest -g -Wall -I/usr/local/classads-1.0.4//include/ classad
-I/usr/local/classads-1.0.4//include -DWANT_NAMESPACES -
DWANT_CLASSAD_NAMESPACE classadd_test.c -L/usr/local/ classads-1.0.4//
lib -lclassad -ldl

The linker complains about missing symbols:

Undefined symbols:
 "classad::ClassAd::ClassAd()", referenced from:
     _main in ccAha9V1.o
 "classad::ClassAdParser::~ClassAdParser()", referenced from:
     _main in ccAha9V1.o
 "classad::ClassAd::~ClassAd()", referenced from:
     _main in ccAha9V1.o
     _main in ccAha9V1.o
 "classad::ClassAdParser::ClassAdParser()", referenced from:
     _main in ccAha9V1.o
ld: symbol(s) not found

I'm using classads 1.0.4 compiled from sources on OS X 1.6 (64bit).
Any ideas what's going wrong here?

Thanks,
Ole
Condor Classads Info:
http://www.cs.wisc.edu/condor/classad/

Make sure you compiled libclassad with WANT_NAMESPACES, you might need
-lclassad_ns instead.

Best,


matt



[← Prev in Thread] Current Thread [Next in Thread→]