Compiling CMBEASY Leopard/intel mac
Posted: November 20 2007
Hi,
I am running OSX 10.5.1 on a macbook pro, and I am trying to get CMBEASY to work. I installed gsl lib and qt latest verions from source and adjusted the environment variables in .cshrc according to the locations of both libraries (usr/local/lib and usr/local/qt/lib respectively, which I checked). I also installed lam-mpi from source.
I wanted to use WMAP3 data as well, but I am not sure wether I should install the newest wmap likelihood code, as it is not completely clear from the INSTALL file in CMBEASY directory. Since WMAP3 code is build by default I uncommented the line buildwmap3=true as mentioned in the INSTALL file.
Since I thought everything was set up correctly I ran the Makefile. However, I get the following error [s]:
anisotropy/driver.cc: In function 'void useFile(const char*)':
anisotropy/driver.cc:186: error: 'uint' was not declared in this scope
anisotropy/driver.cc:186: error: expected `;' before 'in'
anisotropy/driver.cc:186: error: no match for 'operator<' in 'in < cosmos.Cosmos::InitialPower.SafeVector<double>::<anonymous>.std::vector<_Tp, _Alloc>::size [with _Tp = double, _Alloc = std::allocator<double>]()'
anisotropy/driver.cc:186: error: no match for 'operator++' in '++in'
anisotropy/driver.cc:186: error: invalid conversion from 'void*' to 'long unsigned int'
anisotropy/driver.cc:186: error: initializing argument 1 of 'typename std::vector<T, std::allocator<_CharT> >::reference SafeVector<T>::operator[](size_t) [with T = double]'
anisotropy/driver.cc:186: error: invalid conversion from 'void*' to 'long unsigned int'
anisotropy/driver.cc:186: error: initializing argument 1 of 'typename std::vector<T, std::allocator<_CharT> >::reference SafeVector<T>::operator[](size_t) [with T = double]'
anisotropy/driver.cc: In function 'void detailed()':
anisotropy/driver.cc:398: error: 'uint' was not declared in this scope
anisotropy/driver.cc:398: error: expected `;' before 'in'
anisotropy/driver.cc:398: error: 'in' was not declared in this scope
make: *** [bin/cmb] Error 1
I am not sure what is wrong here. I checked the driver.cc routine, and indeed the uint is not declared. I can hardly believe that this is a mistake made by the programmers, so I must have done something wrong. At the moment I have no idea what could be wrong.
I red in an earlier post that the lines
extern "C" int isnan(double);
extern "C" int isinf(double);
should be added to some of the routines. I tried to do this, but apparently this was already fixed in a recent version since the lines where already there. However, they are only activated (from what I can understand) when one uses OSX panther. Should I try to change this?
Anybody has an idea. Any help will be greatly appreciated. Thanx
daan
I am running OSX 10.5.1 on a macbook pro, and I am trying to get CMBEASY to work. I installed gsl lib and qt latest verions from source and adjusted the environment variables in .cshrc according to the locations of both libraries (usr/local/lib and usr/local/qt/lib respectively, which I checked). I also installed lam-mpi from source.
I wanted to use WMAP3 data as well, but I am not sure wether I should install the newest wmap likelihood code, as it is not completely clear from the INSTALL file in CMBEASY directory. Since WMAP3 code is build by default I uncommented the line buildwmap3=true as mentioned in the INSTALL file.
Since I thought everything was set up correctly I ran the Makefile. However, I get the following error [s]:
anisotropy/driver.cc: In function 'void useFile(const char*)':
anisotropy/driver.cc:186: error: 'uint' was not declared in this scope
anisotropy/driver.cc:186: error: expected `;' before 'in'
anisotropy/driver.cc:186: error: no match for 'operator<' in 'in < cosmos.Cosmos::InitialPower.SafeVector<double>::<anonymous>.std::vector<_Tp, _Alloc>::size [with _Tp = double, _Alloc = std::allocator<double>]()'
anisotropy/driver.cc:186: error: no match for 'operator++' in '++in'
anisotropy/driver.cc:186: error: invalid conversion from 'void*' to 'long unsigned int'
anisotropy/driver.cc:186: error: initializing argument 1 of 'typename std::vector<T, std::allocator<_CharT> >::reference SafeVector<T>::operator[](size_t) [with T = double]'
anisotropy/driver.cc:186: error: invalid conversion from 'void*' to 'long unsigned int'
anisotropy/driver.cc:186: error: initializing argument 1 of 'typename std::vector<T, std::allocator<_CharT> >::reference SafeVector<T>::operator[](size_t) [with T = double]'
anisotropy/driver.cc: In function 'void detailed()':
anisotropy/driver.cc:398: error: 'uint' was not declared in this scope
anisotropy/driver.cc:398: error: expected `;' before 'in'
anisotropy/driver.cc:398: error: 'in' was not declared in this scope
make: *** [bin/cmb] Error 1
I am not sure what is wrong here. I checked the driver.cc routine, and indeed the uint is not declared. I can hardly believe that this is a mistake made by the programmers, so I must have done something wrong. At the moment I have no idea what could be wrong.
I red in an earlier post that the lines
extern "C" int isnan(double);
extern "C" int isinf(double);
should be added to some of the routines. I tried to do this, but apparently this was already fixed in a recent version since the lines where already there. However, they are only activated (from what I can understand) when one uses OSX panther. Should I try to change this?
Anybody has an idea. Any help will be greatly appreciated. Thanx
daan