← Back to team overview

dolfin team mailing list archive

Re: compile problem

 


Harish Narayanan wrote:
On 2/28/10 7:18 PM, Riesen Patrick wrote:
hello,

i'm trying to compile dolfin dev on my mac at home. i get a compile error as

/usr/include/c++/4.0.0/tr1/hashtable: In member function ‘typename std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::const_iterator std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::find(const Key&) const [with Key = unsigned int, Value = unsigned int, Allocator = std::allocator<unsigned int>, ExtractKey = Internal::identity<unsigned int>, Equal = std::equal_to<unsigned int>, H1 = std::tr1::hash<unsigned int>, H2 = Internal::mod_range_hashing, H = Internal::default_ranged_hash, RehashPolicy = Internal::prime_rehash_policy, bool cache_hash_code = false, bool mutable_iterators = false, bool unique_keys = true]’:
dolfin/fem/DofMapBuilder.cpp:178:   instantiated from here
/usr/include/c++/4.0.0/tr1/hashtable:1135: error: passing ‘const std::tr1::hashtable<unsigned int, unsigned int, std::allocator<unsigned int>, Internal::identity<unsigned int>, std::equal_to<unsigned int>, std::tr1::hash<unsigned int>, Internal::mod_range_hashing, Internal::default_ranged_hash, Internal::prime_rehash_policy, false, false, true>’ as ‘this’ argument of ‘typename std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::node* std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::find_node(Internal::hash_node<Value, cache_hash_code>*, const Key&, typename std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::hash_code_t) [with Key = unsigned int, Value = unsigned int, Allocator = std::allocator<unsigned int>, ExtractKey


= Internal::identity<unsigned int>, Equal = std::equal_to<unsigned int>, H1 = std::tr1::hash<unsigned int>, H2 = Internal::mod_range_hashing, H = Internal::default_ranged_hash, RehashPolicy = Internal::prime_rehash_policy, bool cache_hash_code = false, bool mutable_iterators = false, bool unique_keys = true]’ discards qualifiers
scons: *** [dolfin/fem/DofMapBuilder.os] Error 1
scons: building terminated because of errors.
dolfin/fem/DofMapBuilder.os failed: Error 1
Failure with exit status: 2
Exit message: There was a problem building dolfin.


is this a compiler problem? i was using gnu compilers 4.4.1 on mac 10.5.8
does somebody have a hint on how to handle this?

It would be clearer if you pasted more of your error.

there was not more, it was building ok, but this showed straight up on
building DofMapBuilder.cpp

If you are using mpic++ (even with a recent g++ installed), it is likely
pointing to your default mac compilers (gcc 4.0.x). I ran into this a
short while ago before I moved to Mac OS X 10.6.x.

i'm using a self-installed openmpi, and i switched my compilers to point
to gcc4.4.1, but probably my mpicompilers do wrap to the older version
as you suspect.

thanks for the hint, Garth and Harish, i'll let you know as soon as i
can fix it.

regards,
patrick

You can look at a tiny patch I made for this if you want to fix it locally:
http://bazaar.launchpad.net/~dolfin-core/dolfin/main/revision/4495.1.1

Harish