Re: keep getting "undefined reference to" linker error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Brian Dessent wrote:

> 
> I'm not sure that's valid.  I meant edit the taucs.h header so that the
> block encloses declarations.  If you try to wrap the entire header like
> that then it will apply to everything recursively that the header itself
> includes, which leads to the kind of error you're seeing where you've
> got a C++ header being interpreted as C, though I'm not sure how a C
> library header ends up including C++ headers.

hmm .. I will have to look into. Not a pleasant task I might say.


>> Somebody at comp.lang.c++ pointed out that I should not need to enclose
>> the header as shown above, the library should take care of that by itself.
> 
> Yes, this is a defect of the library's design.  It would appear that its
> authors never intended for it to be used from/with a C++ compiler, so
> another alternative would be to rename your file to have a .c extension
> and compile with gcc.

Yes, this I have already tried. I again again get tons of errors, I
think similar to the earlier ones I reported ... I could be wrong
though. Here are the command run for the compilation:
$> make -n
gcc -g -Wall -c -ansi -Wno-deprecated -I./
-I/home/hs/tmp/taucs/build/linux -I/home/hs/tmp/taucs/src  spmat.cc  -o
spmat.o
gcc spmat.o -o spmat /home/hs/tmp/taucs/lib/linux/libtaucs.a
-L/home/hs/tmp/taucs/lib/linux -ltaucs
-L/home/hs/tmp/taucs/external/lib/linux -latlas  -llapack -lf77blas
-lcblas -latlas  -lmetis -lm -lg2c


Here is a sample output from the above commands:
/usr/include/c++/4.1.3/complex:529: error: template with C linkage
/usr/include/c++/4.1.3/complex:534: error: template with C linkage
/usr/include/c++/4.1.3/complex:539: error: template with C linkage
/usr/include/c++/4.1.3/complex:544: error: template with C linkage
/usr/include/c++/4.1.3/complex:550: error: template with C linkage
/usr/include/c++/4.1.3/complex: In function ‘double
std::__complex_abs(double __complex__)’:
/usr/include/c++/4.1.3/complex:569: error: declaration of C function
‘double std::__complex_abs(double __complex__)’ conflicts with
/usr/include/c++/4.1.3/complex:566: error: previous declaration ‘float
std::__complex_abs(float __complex__)’ here
/usr/include/c++/4.1.3/complex: In function ‘long double
std::__complex_abs(const long double __complex__&)’:
/usr/include/c++/4.1.3/complex:572: error: declaration of C function
‘long double std::__complex_abs(const long double __complex__&)’
conflicts with
/usr/include/c++/4.1.3/complex:569: error: previous declaration ‘double
std::__complex_abs(double __complex__)’ here
/usr/include/c++/4.1.3/complex: At global scope:
/usr/include/c++/4.1.3/complex:575: error: template with C linkage
/usr/include/c++/4.1.3/complex:586: error: template with C linkage
/usr/include/c++/4.1.3/complex: In function ‘double
std::__complex_arg(double __complex__)’:
/usr/include/c++/4.1.3/complex:596: error: declaration of C function
‘double std::__complex_arg(double __complex__)’ conflicts with
/usr/include/c++/4.1.3/complex:593: error: previous declaration ‘float
std::__complex_arg(float __complex__)’ here
/usr/include/c++/4.1.3/complex: In function ‘long double
std::__complex_arg(const long double __complex__&)’:
/usr/include/c++/4.1.3/complex:599: error: declaration of C function
‘long double std::__complex_arg(const long double __complex__&)’
conflicts with
/usr/include/c++/4.1.3/complex:596: error: previous declaration ‘double
std::__complex_arg(double __complex__)’ here
/usr/include/c++/4.1.3/complex: At global scope:
/usr/include/c++/4.1.3/complex:602: error: template with C linkage
/usr/include/c++/4.1.3/complex:616: error: template with C linkage
/usr/include/c++/4.1.3/complex:628: error: template specialization with
C linkage

hmm ... what do I do next?

thanks,
->HS



> Brian
> 


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux