You are here

Rosetta 3.5 Compiling Error - fedora 20

8 posts / 0 new
Last post
Rosetta 3.5 Compiling Error - fedora 20
#1

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_64

The 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

Post Situation: 
Thu, 2014-02-06 02:18
chaperone

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?

Thu, 2014-02-06 09:33
rmoretti

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?

Fri, 2014-02-07 18:40
chaperone

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.

Thu, 2014-04-03 14:05
reddybg

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)

Fri, 2014-04-04 08:58
rmoretti

This method works. The problem has been solved. Thanks, rmoretti

Sun, 2014-04-06 06:30
chaperone

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?

Wed, 2014-04-16 14:18
reddybg

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)

Thu, 2014-04-17 07:58
rmoretti