Member Site › Forums › Rosetta 3 › Rosetta 3 – Build/Install › Build error: FragmentPicker.cc:1406: error: ‘j’ is not a member of ‘basic::options::OptionKeys::frags’
- This topic has 5 replies, 3 voices, and was last updated 9 years, 7 months ago by
Anonymous.
-
AuthorPosts
-
-
November 18, 2014 at 4:30 pm #2072
Anonymous
Hi,
I’m trying to build Rosetta with MPI/boost on a linux system, and am using rosetta_2014.35.57232_bundle.
I’m invoking the build with:
python scons.py -j8 bin mode=release extras=boost,boost_thread,mpi
and the build is failing here:
/opt/openmpi/bin/mpicxx -o build/src/release/linux/2.6/64/x86/gcc/4.1/boost-boost_thread-mpi/protocols/frag_picker/FragmentPicker.os -c -std=c++98 -pipe -ffor-scope -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -Wno-unused-parameter -pthread -fPIC -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DNDEBUG -DUSE_BOOST_THREAD -DMULTI_THREADED -DUSEMPI -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/4.1 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_55_0 -Iexternal/dbio -I/usr/include -I/usr/local/include src/protocols/frag_picker/FragmentPicker.cc
src/protocols/frag_picker/FragmentPicker.cc: In member function ‘void protocols::frag_picker::FragmentPicker::parse_command_line()’:
src/protocols/frag_picker/FragmentPicker.cc:1406: error: ‘j’ is not a member of ‘basic::options::OptionKeys::frags’
src/protocols/frag_picker/FragmentPicker.cc:1406: error: ‘j’ is not a member of ‘basic::options::OptionKeys::frags’Is something missing from the source, or is there a problem with my build options?
Best wishes,
Jens
-
November 18, 2014 at 4:53 pm #10593
Anonymous
Compiling with both MPI and threads is not a standard mode for Rosetta – I don’t know if anyone has actually tested it. In fact, compiling with threads at all is somewhat experimental at the moment, and probably shouldn’t be used for routine use. (MPI usage by itself is standard and well supported.) Also, Rosetta now uses Boost by default when it needs it. The separate “boost” extras build effectively does nothing. If you cut down your “extras” to just MPI, your compilation should work.
If you know you need boost_threads for a particular usage, (e.g. you’re compiling specifically for the multithreaded mode on the fragment picker) then go into main/source/src/basic/options/options_rosetta.py and in line 4553 remove the “#” from the front of the line that goes “Option( ‘j’, …”. Save the modified file and recompile with scons. (This is a bug that slipped through because multithreading mode in Rosetta is used so rarely.)
-
January 15, 2015 at 9:26 pm #10768
Anonymous
I am trying to recompile fragment picker rosettawk52 so i can use multithreading protocol I have followed the suggestions by Rocco and edited the options_rosetta.py
Here is my compile call
python scons.py mode=release extras=boost_thread bin/fragment_picker.boost_thread.linuxgccrelease
I am getting this errorg++ -o build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/libObjexxFCL.so -Wl,-rpath=/ifs/home/etk243/HIV/software/rosetta_2014wk35_bundle/main/source/build/external/release/linux/2.6/64/x86/gcc/4.4/boost_thread -Wl,-rpath=$ORIGIN -Wl,-rpath=$ORIGIN/../lib -shared build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/char.functions.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/Cstring.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/Dimension.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/DimensionExpression.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/DimensionExpressionRef.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/DynamicIndexRange.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/format.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/Fstring.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/IndexRange.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/Observer.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/ObserverGraph.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/ObserverMediator.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/ObserverMulti.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/Star.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/string.functions.os build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/Time_Date.os -Lexternal/lib -Lbuild/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread -Lsrc -Lbuild/external/release/linux/2.6/64/x86/gcc/4.4/boost_thread -Lexternal -L/cm/shared/apps/sge/2011.11/lib/linux-x64 -L/cm/shared/apps/openmpi/open64/64/1.4.5/lib64 -L/usr/lib -L/usr/local/lib -L/usr/local/lib -L/opt/boost/lib -lpthread -lboost_thread
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status
scons: *** [build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/libObjexxFCL.so] Error 1
scons: building terminated because of errors.I need help in figuring out how to make this work
Thank you
-
January 30, 2015 at 7:42 pm #10802
Anonymous
Hi Linucks,
Thank you for your time and assistance. I managed to fix the problem by downloading and installing a fresh boost. The one that came with rosetta does not allow building boost thread. I followed the building boost thread protocol as outlined on http://ccp4wiki.org/~ccp4wiki/wiki/index.php?title=Installing_Rosetta and https://github.com/jslick/matrixvm/wiki/How-to-build-boost-thread-(on-Linux) -
November 21, 2014 at 10:53 am #10621
Anonymous
Thanks for the quick reply.
As you correctly surmised, I was compling with threads to get a threaded fragment picker. Uncommenting the line you mentioned solved the problem, so thanks a lot for your help.
-
January 20, 2015 at 5:51 pm #10779
Anonymous
Hi,
It looks like the problem is here:
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
It looks like your libpthread.so library isn’t compatible with the rest of the build. You need the files you’re compiling and the libraries to be either all 32- or 64-bit. You can find out what type of file the libpthread libary is using the file command:
file /usr/lib/libpthread.so
Checking one of the files from the build with the same command will tell you what type of file that is, e.g:
file build/src/release/linux/2.6/64/x86/gcc/4.4/boost_thread/ObjexxFCL/Dimension.os
If these are different types (i.e. one is 32 bit and the other 64 bit) you will either need to install a pthread library to match the build or change the type of the build to match the pthread library.
Hope that helps.
-
-
AuthorPosts
- You must be logged in to reply to this topic.