Member Site › Forums › Rosetta 3 › Rosetta 3 – Build/Install › Rosetta 3.5 Compiling Error – fedora 20
- This topic has 7 replies, 3 voices, and was last updated 10 years, 4 months ago by
Anonymous.
-
AuthorPosts
-
-
February 6, 2014 at 10:18 am #1823
Anonymous
Hi All,
I have been trying to install rosetta on fedora 20 and keep running into a compiling error with EndPoint that terminates the build. Any suggestions would be much appreciated.
localhost 102% uname -a
Linux localhost.localdomain 3.11.10-301.fc20.x86_64The error I got after command “scons bin mode=release” and successfully building for 30min or so:
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/3.11/64/x86/gcc/4.8/default/protocols/wum2/EndPoint.os -c -std=c++98 -isystem external/boost_1_46_1/ -pipe -ffor-scope -Wall -Wextra -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/4.8 -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/wum2/EndPoint.cc
src/protocols/wum2/EndPoint.cc:21:42: error: a function call cannot appear in a constant-expression
EndPoint::EndPoint( function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
^
src/protocols/wum2/EndPoint.cc:21:44: error: template argument 1 is invalid
EndPoint::EndPoint( function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
^
src/protocols/wum2/EndPoint.cc:21:1: error: prototype for ‘protocols::wum2::EndPoint::EndPoint(int)’ does not match any in class ‘protocols::wum2::EndPoint’
EndPoint::EndPoint( function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
^
In file included from src/protocols/wum2/EndPoint.cc:15:0:
src/protocols/wum2/EndPoint.hh:33:7: error: candidates are: protocols::wum2::EndPoint::EndPoint(const protocols::wum2::EndPoint&)
class EndPoint {
^
src/protocols/wum2/EndPoint.hh:36:2: error: protocols::wum2::EndPoint::EndPoint(boost::function)
EndPoint( function < uint64_t () > role_available_mem );
^
scons: *** [build/src/release/linux/3.11/64/x86/gcc/4.8/default/protocols/wum2/EndPoint.os] Error 1
scons: building terminated because of errors.Thanks,
Ning -
February 6, 2014 at 5:33 pm #9766
Anonymous
I would recommend trying a clean compile. Delete everything under the build/ directory and redo the scons compile.
If that doesn’t work, try editing src/protocols/wum2/EndPoint.cc to add “boost::” before “function”:
EndPoint::EndPoint( boost::function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
If that doesn’t work, what compiler are you using? (Do a ‘g++ –version’ at the command prompt.) And do you have you made any compiler-related settings changes to your system?
-
February 8, 2014 at 2:40 am #9778
Anonymous
rmoretti, Thank you very much for your reply!
I tried a clean compile with and without editing src/protocols/wum2/EndPoint.cc according your suggestion, but same error appeared. I downloaded the newest package – rosetta_2014wk05_bundle and tried, same problem.
The compiler I am using:localhost 109% g++ –version
g++ (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7)I didn’t make any compiler-related settings changes.
Do I need to rebuild the boost_1_46_1 and make some change in site.settings?
Any suggestions? -
April 3, 2014 at 9:05 pm #9943
Anonymous
I too am having the same problem. I an unable to build rosetta under fedora 20. I have tried using the ICC compiler with the same issue. I can’t get past the src/protocols/wum2/EndPoint.cc compiler error issue.
-
April 4, 2014 at 3:58 pm #9944
Anonymous
It may be your platform doesn’t define uint64_t, or there’s something wrong with that definition.
You can try adding the following line to the top of the file:
#include <boost/cstdint.hpp>
And then change the line to
EndPoint::EndPoint( boost::function < boost::uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
This may just move the error to other lines in other files, in which case you may have to do the same treatment to the other files (add the cstdint include line to the top of the file near the other includes, and change the instances of uint64_t to boost::uint64_t)
-
April 6, 2014 at 1:30 pm #9948
Anonymous
This method works. The problem has been solved. Thanks, rmoretti
-
April 16, 2014 at 9:18 pm #9975
Anonymous
This method worked for me too. In the end, I edited both src/protocols/wum2/EndPoint.cc and src/protocols/wum2/EndPoint.hh files. Thanks for the solution rmoretti . I wonder how we submit this bug to developers?
-
April 17, 2014 at 2:58 pm #9980
Anonymous
The Rosetta bug tracker can be found at http://bugs.rosettacommons.org
The general public is welcome to make an account and submit bugs. Or, as I’m also a developer, you can report the problem here and (if I remember to) I’ll submit a bug or let the relevant party know. (I have already submitted a bug for this one: https://carbon.structbio.vanderbilt.edu/mantisbt/view.php?id=332)
-
-
AuthorPosts
- You must be logged in to reply to this topic.