Dear all, The current version of my RNiftyReg package is failing to compile on CRAN's Solaris testbed, but I don't have access to a Solaris system to debug on, and Googling the error hasn't been very helpful. The error is
CC -library=stlport4 -I/home/ripley/R/cc/include -DNDEBUG -DNDEBUG -DRNIFTYREG -I/usr/local/include -KPIC -O -xlibmil -xtarget=native -nofstore -c niftyreg.cpp -o niftyreg.o "_reg_f3d_sym.cpp", line 25: Error: reg_f3d may not have a type qualifier. "niftyreg.cpp", line 527: Where: While instantiating "reg_f3d_sym<double>::reg_f3d_sym(int, int)". "niftyreg.cpp", line 527: Where: Instantiated from non-template code. "_reg_f3d_sym.cpp", line 26: Error: reg_f3d<T> cannot be initialized in a constructor. "niftyreg.cpp", line 527: Where: While instantiating "reg_f3d_sym<double>::reg_f3d_sym(int, int)". "niftyreg.cpp", line 527: Where: Instantiated from non-template code. "_reg_f3d_sym.cpp", line 26: Error: Could not find reg_f3d<double>::reg_f3d() to initialize base class. "niftyreg.cpp", line 527: Where: While instantiating "reg_f3d_sym<double>::reg_f3d_sym(int, int)". "niftyreg.cpp", line 527: Where: Instantiated from non-template code. 3 Error(s) detected. *** Error code 2 make: Fatal error: Command failed for target `niftyreg.o' (Full log at [1].) The relevant part of the source is a C++ class constructor, part of the library that my package interfaces to: template <class T> reg_f3d_sym<T>::reg_f3d_sym(int refTimePoint,int floTimePoint) :reg_f3d<T>::reg_f3d(refTimePoint,floTimePoint) { this->executableName=(char *)"NiftyReg F3D SYM"; this->backwardControlPointGrid=NULL; this->backwardWarped=NULL; this->backwardWarpedGradientImage=NULL; this->backwardDeformationFieldImage=NULL; this->backwardVoxelBasedMeasureGradientImage=NULL; this->backwardNodeBasedGradientImage=NULL; this->backwardBestControlPointPosition=NULL; this->backwardConjugateG=NULL; this->backwardConjugateH=NULL; this->backwardProbaJointHistogram=NULL; this->backwardLogJointHistogram=NULL; this->floatingMaskImage=NULL; this->currentFloatingMask=NULL; this->floatingMaskPyramid=NULL; this->backwardActiveVoxelNumber=NULL; this->inverseConsistencyWeight=0.1; #ifndef NDEBUG printf("[NiftyReg DEBUG] reg_f3d_sym constructor called\n"); #endif } The error does not occur on any Windows, Linux or OS X system which I have access to, so this would seem to be an issue relating to the Solaris compiler toolchain in particular. Can anyone shed any light on it, please? Thanks in advance, Jon -- [1] http://www.r-project.org/nosvn/R.check/r-patched-solaris-x86/RNiftyReg-00install.html [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel