A good point, but I switched to g++ when I couldn’t get my code including BLAS
and LAPACK libraries through qcc. I’ll make a new attempt when the current
problem is resolved.
qcc seems not either able to handle a unint64 sent to a ostream.
New program and g++ and qcc compilation output below.
Same error. Or is it a bug in my code?
If removing the problem line, it compiles and links with g++ but fails to link
with qcc (do I miss a library?):
$ qcc -g -W1 -o fq fq.o -lm
fq.o:f.cc:21: undefined reference to std::terminate(void)’
fq.o:f.cc:8: undefined reference to std::ios_base::Init::Init(void)’
…more undefined refererence follows…
Cheers / Tom
f.cc:
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
#include
using namespace std;
main(int argc, char *argv[])
{
float a=0.0,b,c;
uint64_t x = 0;
ofstream fout(“foo.txt”);
b = cos(a);
c = cos(0.0);
fout << x << endl; // problem line
exit(EXIT_SUCCESS);
}
$ g++ -g -c f.cc -o f.o
f.cc: In function int main(int, char **)’:
f.cc:18: ambiguous overload for std::ofstream & << uint64_t &’
/usr/include/ostream:108: candidates are: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(bool)
/usr/include/ostream:127: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(short int)
/usr/include/ostream:151: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(short unsigned int)
/usr/include/ostream:170: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(int)
/usr/include/ostream:194: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(unsigned int)
/usr/include/ostream:213: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(long int)
/usr/include/ostream:232: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(long unsigned int)
/usr/include/ostream:291: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(float)
/usr/include/ostream:310: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(double)
/usr/include/ostream:329: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(long double)
/usr/include/ostream:517: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<char, std::char_traits
(std::basic_ostream<ch
ar,std::char_traits > &, char)
/usr/include/ostream:598: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<std::char_traits
(std::basic_ostream<char,std
::char_traits > &, char)
/usr/include/ostream:721: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<std::char_traits
(std::basic_ostream<char,std
::char_traits > &, signed char)
/usr/include/ostream:733: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<std::char_traits
(std::basic_ostream<char,std
::char_traits > &, unsigned char)
make: *** [f.o] Error 1
$ qcc -g -c f.cc -o fq.o
f.cc: In function int main(int, char **)’:
f.cc:18: ambiguous overload for std::ofstream & << uint64_t &’
/usr/include/ostream:108: candidates are: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(bool)
/usr/include/ostream:127: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(short int)
/usr/include/ostream:151: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(short unsigned int)
/usr/include/ostream:170: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(int)
/usr/include/ostream:194: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(unsigned int)
/usr/include/ostream:213: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(long int)
/usr/include/ostream:232: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(long unsigned int)
/usr/include/ostream:291: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(float)
/usr/include/ostream:310: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(double)
/usr/include/ostream:329: class
std::basic_ostream<char,std::char_tr
aits > & std::basic_ostream<char,std::char_traits >::operator
<<(long double)
/usr/include/ostream:517: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<char, std::char_traits
(std::basic_ostream<ch
ar,std::char_traits > &, char)
/usr/include/ostream:598: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<std::char_traits
(std::basic_ostream<char,std
::char_traits > &, char)
/usr/include/ostream:721: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<std::char_traits
(std::basic_ostream<char,std
::char_traits > &, signed char)
/usr/include/ostream:733: class
std::basic_ostream<char,std::char_tr
aits > & std::operator <<<std::char_traits
(std::basic_ostream<char,std
::char_traits > &, unsigned char)
cc: /usr/lib/gcc-lib/ntox86/2.95.2/cc1plus error 33
make: *** [fq.o] Error 1
Tools Mail Account wrote:
Well also, instead of calling g++, you might just want to go with qcc, did
what you posted, and I did not even get a warning or nothing.
Regards,
Francois
Tomas Högström <> tomas@scandicraft.se> > wrote:
Thanks, seem to have made things better. Still problems with ostream though:
Cannot do
fout << X;
to ofstream fout (and probably not to an ostream either) when X is an uint64_t;
still overload/ambiguity problems there.
Cheers / Tom
Mario Charest wrote:
Edit /usr/lib/gcc-lib/ntox86/2.95.2/specs
*cc1plus:
%(cc1plus_spec) -fhonor-std -fno-builtin