[galib] Cygwin gcc compiler problems with template instantiation using GAlib
Daiyue Weng
dweng01 at qub.ac.uk
Tue Sep 17 10:22:46 EDT 2013
Hi, all, I am using Cygwin gcc 4.8.1 with Netbeans 7.3.1 on Win 7 pro x64. I tried to build the GAlib project but encounter the template instantiation issues:
g++ -g -Wall -I.. -c ex17.C
../ga/GA2DArrayGenome.C: In instantiation of ‘GA2DArrayAlleleGenome<T>::GA2DArrayAlleleGenome(unsigned int, unsigned int, const GAAlleleSet<T>&, GAGenome::Evaluator, void*) [with T = int; GAGenome::Evaluator = float (*)(GAGenome&)]’:
In file included from ../ga/GA2DArrayGenome.h:150:0,
from ../ga/ga.h:168,
from ex17.C:13:
ex17.C:45:63: required from here
../ga/GA2DArrayGenome.C:272:75: error: ‘initializer’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
initializer(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_INITIALIZER);
^
../ga/GA2DArrayGenome.C:272:75: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:272:75: note: use ‘this->initializer’ instead
../ga/GA2DArrayGenome.C:273:67: error: ‘mutator’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
mutator(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_MUTATOR);
^
../ga/GA2DArrayGenome.C:273:67: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:273:67: note: use ‘this->mutator’ instead
../ga/GA2DArrayGenome.C:274:73: error: ‘comparator’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
comparator(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_COMPARATOR);
^
../ga/GA2DArrayGenome.C:274:73: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:274:73: note: use ‘this->comparator’ instead
../ga/GA2DArrayGenome.C:275:71: error: ‘crossover’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
crossover(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_CROSSOVER);
^
../ga/GA2DArrayGenome.C:275:71: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:275:71: note: use ‘this->crossover’ instead
../ga/GA2DArrayGenome.C: In instantiation of ‘GA2DArrayAlleleGenome<T>::GA2DArrayAlleleGenome(unsigned int, unsigned int, const GAAlleleSetArray<T>&, GAGenome::Evaluator, void*) [with T = int; GAGenome::Evaluator = float (*)(GAGenome&)]’:
ex17.C:138:28: required from here
../ga/GA2DArrayGenome.C:289:75: error: ‘initializer’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
initializer(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_INITIALIZER);
^
../ga/GA2DArrayGenome.C:289:75: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:289:75: note: use ‘this->initializer’ instead
../ga/GA2DArrayGenome.C:290:67: error: ‘mutator’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
mutator(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_MUTATOR);
^
../ga/GA2DArrayGenome.C:290:67: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:290:67: note: use ‘this->mutator’ instead
../ga/GA2DArrayGenome.C:291:73: error: ‘comparator’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
comparator(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_COMPARATOR);
^
../ga/GA2DArrayGenome.C:291:73: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:291:73: note: use ‘this->comparator’ instead
../ga/GA2DArrayGenome.C:292:71: error: ‘crossover’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
crossover(GA2DArrayAlleleGenome<T>::DEFAULT_2DARRAY_ALLELE_CROSSOVER);
^
../ga/GA2DArrayGenome.C:292:71: note: declarations in dependent base ‘GAGenome’ are not found by unqualified lookup
../ga/GA2DArrayGenome.C:292:71: note: use ‘this->crossover’ instead
makefile:27: recipe for target `ex17.o' failed
make[1]: *** [ex17.o] Error 1
make[1]: Leaving directory `/cygdrive/c/Users/Daiyue/Documents/NetBeansProjects/galib247/examples'
Makefile:19: recipe for target `ex' failed
make: *** [ex] Error 2
I also defined NO_AUTO_INST in the gaconfig.h, but the errors persists. So how to fix this problem?
cheers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/galib/attachments/20130917/fabd51b4/attachment-0001.htm
More information about the galib
mailing list