You are here

extensions.hpp:38:33 error: template<class conflict with a previous declaration

6 posts / 0 new
Last post
extensions.hpp:38:33 error: template<class conflict with a previous declaration
#1

hey all, 

 

      Sorry if this is previously solved but I have not seen this anything like this before with limited help on google so I don't even know where to start.  I've just bought a new computer and installed ubuntu 15.10 (newest versions maybe this is the problem?). I've installed rosetta several times on other systems not running 15.10. these are my steps.

install appropriate lib that are not on my computer is libz (i didn't see an error saying it was missing a lib)

install scons

change the gcc compiler line in /tools/build/options.settings to include my current version of gcc i.e line staops at "4.6", "*" changed to  "4.6", "4.7", "4.8" ect, "5.2", "*"

scons bin mode=release

 

here is my error

 

/rosetta_source$ scons bin mode=release
scons: Reading SConscript files ...
svn_version.py reports this is a non-version-control release version of Rosetta
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/src/release/linux/4.2/64/x86/gcc/5.2/default/apps/public/AbinitioRelax.o -c -std=c++98 -isystem external/boost_1_46_1/ -pipe -ffor-scope -Wall -Wextra -pedantic -Wno-long-long -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -DNDEBUG -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.2 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/apps/public/AbinitioRelax.cc
g++ -o build/src/release/linux/4.2/64/x86/gcc/5.2/default/devel/init.os -c -std=c++98 -isystem external/boost_1_46_1/ -pipe -ffor-scope -Wall -Wextra -pedantic -Wno-long-long -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -fPIC -DNDEBUG -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.2 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/devel/init.cc
g++ -o build/src/release/linux/4.2/64/x86/gcc/5.2/default/protocols/init/init.os -c -std=c++98 -isystem external/boost_1_46_1/ -pipe -ffor-scope -Wall -Wextra -pedantic -Wno-long-long -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -fPIC -DNDEBUG -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.2 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/protocols/init/init.cc
In file included from external/boost_1_46_1/boost/functional/hash/hash.hpp:535:0,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from external/boost_1_46_1/boost/unordered/unordered_map.hpp:17,
                 from external/boost_1_46_1/boost/unordered_map.hpp:16,
                 from src/protocols/outputter/FormatStringOutputter.hh:24,
                 from src/protocols/outputter/PDBOutputter.hh:19,
                 from src/protocols/init/init.OutputterFactory.ihh:16,
                 from src/protocols/init/init.cc:77:
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:33: error: 'template<class T, class A> std::size_t boost::hash_value' conflicts with a previous declaration
     std::size_t hash_value(std::list<T, A> const& v);
                                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:36:17: note: previous declaration 'namespace boost { }::hash_value'
     std::size_t hash_value(std::vector<T, A> const&);
                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:28: error: reference to 'list' is ambiguous
     std::size_t hash_value(std::list<T, A> const& v);
                            ^
In file included from external/boost_1_46_1/boost/functional/hash/extensions.hpp:17:0,
                 from external/boost_1_46_1/boost/functional/hash/hash.hpp:535,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from external/boost_1_46_1/boost/unordered/unordered_map.hpp:17,
                 from external/boost_1_46_1/boost/unordered_map.hpp:16,
                 from src/protocols/outputter/FormatStringOutputter.hh:24,
                 from src/protocols/outputter/PDBOutputter.hh:19,
                 from src/protocols/init/init.OutputterFactory.ihh:16,
                 from src/protocols/init/init.cc:77:
external/boost_1_46_1/boost/detail/container_fwd.hpp:85:47: note: candidates are: template<class T, class Allocator> class std::list
     template <class T, class Allocator> class list;
                                               ^
In file included from /usr/include/c++/5/list:63:0,
                 from src/basic/resource_manager/ResourceLoaderFactory.hh:26,
                 from src/basic/resource_manager/ResourceLoaderRegistrator.hh:20,
                 from src/protocols/init/init.ResourceLoaderCreators.ihh:15,
                 from src/protocols/init/init.cc:30:
/usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class _Tp, class _Alloc> class std::__cxx11::list
     class list : protected _List_base<_Tp, _Alloc>
           ^
In file included from external/boost_1_46_1/boost/functional/hash/hash.hpp:535:0,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from external/boost_1_46_1/boost/unordered/unordered_map.hpp:17,
                 from external/boost_1_46_1/boost/unordered_map.hpp:16,
                 from src/protocols/outputter/FormatStringOutputter.hh:24,
                 from src/protocols/outputter/PDBOutputter.hh:19,
                 from src/protocols/init/init.OutputterFactory.ihh:16,
                 from src/protocols/init/init.cc:77:
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:39: error: expected primary-expression before ',' token
     std::size_t hash_value(std::list<T, A> const& v);
                                       ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:42: error: expected primary-expression before '>' token
     std::size_t hash_value(std::list<T, A> const& v);
                                          ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:44: error: expected primary-expression before 'const'
     std::size_t hash_value(std::list<T, A> const& v);
                                            ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:52: error: expression list treated as compound expression in initializer [-fpermissive]
     std::size_t hash_value(std::list<T, A> const& v);
                                                    ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:33: error: 'template<class T, class A> std::size_t boost::hash_value' conflicts with a previous declaration
     std::size_t hash_value(std::list<T, A> const& v)
                                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:51:17: note: previous declaration 'namespace boost { }::hash_value'
     std::size_t hash_value(std::complex<T> const&);
                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:28: error: reference to 'list' is ambiguous
     std::size_t hash_value(std::list<T, A> const& v)
                            ^
In file included from external/boost_1_46_1/boost/functional/hash/extensions.hpp:17:0,
                 from external/boost_1_46_1/boost/functional/hash/hash.hpp:535,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from external/boost_1_46_1/boost/unordered/unordered_map.hpp:17,
                 from external/boost_1_46_1/boost/unordered_map.hpp:16,
                 from src/protocols/outputter/FormatStringOutputter.hh:24,
                 from src/protocols/outputter/PDBOutputter.hh:19,
                 from src/protocols/init/init.OutputterFactory.ihh:16,
                 from src/protocols/init/init.cc:77:
external/boost_1_46_1/boost/detail/container_fwd.hpp:85:47: note: candidates are: template<class T, class Allocator> class std::list
     template <class T, class Allocator> class list;
                                               ^
In file included from /usr/include/c++/5/list:63:0,
                 from src/basic/resource_manager/ResourceLoaderFactory.hh:26,
                 from src/basic/resource_manager/ResourceLoaderRegistrator.hh:20,
                 from src/protocols/init/init.ResourceLoaderCreators.ihh:15,
                 from src/protocols/init/init.cc:30:
/usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class _Tp, class _Alloc> class std::__cxx11::list
     class list : protected _List_base<_Tp, _Alloc>
           ^
In file included from external/boost_1_46_1/boost/functional/hash/hash.hpp:535:0,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from external/boost_1_46_1/boost/unordered/unordered_map.hpp:17,
                 from external/boost_1_46_1/boost/unordered_map.hpp:16,
                 from src/protocols/outputter/FormatStringOutputter.hh:24,
                 from src/protocols/outputter/PDBOutputter.hh:19,
                 from src/protocols/init/init.OutputterFactory.ihh:16,
                 from src/protocols/init/init.cc:77:
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:39: error: expected primary-expression before ',' token
     std::size_t hash_value(std::list<T, A> const& v)
                                       ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:42: error: expected primary-expression before '>' token
     std::size_t hash_value(std::list<T, A> const& v)
                                          ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:44: error: expected primary-expression before 'const'
     std::size_t hash_value(std::list<T, A> const& v)
                                            ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:52: error: expression list treated as compound expression in initializer [-fpermissive]
     std::size_t hash_value(std::list<T, A> const& v)
                                                    ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:70:5: error: expected ';' before '{' token
     {
     ^
scons: *** [build/src/release/linux/4.2/64/x86/gcc/5.2/default/protocols/init/init.os] Error 1
scons: building terminated because of errors.
 

 

There seems to be so many things going on I don't know where to start. I tried looking at the first error I saw with extensions.hpp having a conflict with a precious declaration, but I couldn't find useful information on this errer (i'm not that good with code and I only found very advance forums and I got lost instantly and it didn't seem like it applied regardless. 

 

I also found something on here that mentioned taking the file name ending in '*.os' and opening the .cc that coorisponded and changing header in the file but there are no files created in the scons: *** [build/src/release/linux/4.2/64/x86/gcc/5.2/default/protocols/init/} directory.

 

I had the same problem with the standard rosetta 3.5 release and the rosetta 3.3, two versions I downloaded and installed no more than 3 months ago on another computer that is why I think it might be the operating system but to be honest that is just a guess and I really have no idea.

here is the  edited portion of options.settings file

# -*- mode:python;indent-tabs-mode:nil;show-trailing-whitespace:t; -*-
# (c) Copyright Rosetta Commons Member Institutions.
# (c) This file is part of the Rosetta software suite and is made available under license.
# (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
# (c) For more information, see http://www.rosettacommons.org. Questions about this can be
# (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.

# Supported options
options = {

    "cxx" : {     
        "gcc"     : [ "3.3", "3.4", "4.0", "4.1", "4.2", "4.3", "4.4", "4.5", "4.6", "4.7", "4.8", "4.9", "5.0", "5.1", "5.2", "*" ],
        "icc"     : [ "8.0", "8.1", "9.0", "9.1", "10.0", "10.1", "11.1", "*" ], #PBHACK
        "msvc"    : [ "7.0", "7.1", "8.0", "8.1", "*" ],
        "xlc"     : [ "7.0", "8.0", "9.0", "XL", "*" ],
        "clang"   : [ "1.7", "2.1", "2.0", "2.8", "2.9", "3.0", "3.1", "4.0", "3.0-6ubuntu3", "4.1", "4.2", "*" ],
    },

    "os" : {
        "linux"   : [ "2.6", "*"],
        "windows" : [ "2000", "XP", "Vista", "*" ],
        "macos"   : [ "10.4", "*" ],
        "cygwin"  : [ "*" ],
        "*"       : [ "*" ],

 

and my gcc version 

gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
 

 

Thanks for any help that you can give,

 

Ryan

Category: 
Post Situation: 
Sat, 2015-10-24 10:01
rlwoltz

I don't know if anyone has tried compiling on Ubuntu 15.10 / gcc 5.2 (as you say, it's pretty new).  What packages did you install?  Did you install just gcc/g++ or did you install "build-essential(s)"?  (I can't remember if it has an s).  It may be that the appropriate path is to install an older gcc package.

Mon, 2015-10-26 08:05
smlewis

I did install build-essentials, I also have other programs installed that are installed on my laptop (ubuntu 15.04) and they are working fine...Maybe I'll try to downgrade and reinstall everything unless there are any other suggestions? I made an irreversible change to my libraries, after making this post, trying to install another program so I need to reinstall anyway but just in case someone else was getting this error. maybe just avoid 15.10 until ubuntu gets it stable is the best solution for now (it is messing up my text anyways and doesn't have good graphic card drivers as well)? I'll post if that fixes the issure.

 

Thanks for the help,

 

Ryan

Mon, 2015-10-26 11:14
rlwoltz

I haven't done compliation on Ubuntu 15.10, but I have tried compiling with gcc 5.2, without issue.
 

One thing of note is that it looks like you're trying  to compile Rosetta3.5. That's about 2.5 years old now. If you don't specifically need the 3.5 release (for recapitulation of previous results, etc.), I would recommend trying one of the recent weekly releases. These have an updated boost library which may (or may not) work better with Ubuntu 15.10.

Tue, 2015-11-10 10:54
rmoretti

Just to follow up on this a bit, a recent weekly release (2016.02.58402) compiled for me just fine with no special modifications on a fresh(ish) Ubuntu 15.10 machine. 

Wed, 2016-02-24 13:17
rmoretti

Just to finish out this forum and give a solution that I had to piece together from multiple forums, this is how I got things to work.

The easiest solution is probably just to install and use everything on 15.04 or lower, but if you really need 15.10 this is how to do it.

build dual boot windows 7/ubuntu 15.10/gcc5.2/nvidia quadro 620k

 issue: My newly purchased computer required ubuntu 15.10 and is not compatable with other ubuntu versions i.e. 15.04 due to graphic card incompatability, however, rosetta would not build on 15.10.

Short answer: build rosetta on 15.04 or lower and use it with this version, or upgrade after building. After trying this in every way I could think of it seems to be an issue with only installing on 15.10, using rosetta on 15.10 works great for the suites I need. It GCC5.2 builds great on 15.04.

long solution: build rosetta on an earlier version of ubuntu in 'nomodeset' (superuser mode) then upgrade to 15.10. If you have a situation like me where 15.04 will not boot up even from the flash drive to install due to graphics card issues perform this. (I was able to get 15.04 to work with a lot of driver troubleshooting but I wanted to give a solution if you wanted 15.10).

during the start up menu instead of pressing enter for the 'install ubuntu' press "e" which will allow you to edit. add in 'nomodeset' (without quotes) right before it says "quiet splash" the press "F10". This should start up in superuser mode and does not require graphics, this method should work with any ubuntu you wish. When the computer restarts and on the selection screen again press "e" on the ubuntu option and add in 'nomodeset' before 'quiet splash". When start up go download the rosetta bundle required and build as you normally would. After the rosetta versions are complete go to the 'software update' and click on settings where it should say "notify me when a new ubuntu version comes out' and select "any version" and click ok. This should now allow you to upgrade to ubuntu 15.10. Ive test a couple suites on rosetta with 15.10 and they all seem to work fine, the main issue is it doesn't build. 

Tip: Make sure to install all rosetta programs before upgrading, once the computer is upgraded you will need to redo everything to install another version.

 

Thanks for the help,

 

Ryan

Wed, 2015-11-18 14:19
rlwoltz