Build error: FragmentPicker.cc:1406: error: ‘j’ is not a member of ‘basic::options::OptionKeys::frags’

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’

Viewing 3 reply threads
  • Author
    Posts
    • #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

      • #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.)

        • #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 error

            g++ -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

          • #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)

            • #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.

              • #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.

              Viewing 3 reply threads
              • You must be logged in to reply to this topic.