getzlab / rnaseqc

Fast, efficient RNA-Seq metrics for quality control and process optimization
Other
149 stars 19 forks source link

Issue with make #42

Closed joshhjang closed 3 years ago

joshhjang commented 4 years ago

Hi,

I downloaded via "git clone --recursive https://github.com/getzlab/rnaseqc.git". After cd to rnaseqc, I tried to use make command and got hit with this error:

"g++ -Wall -std=c++14 -D_GLIBCXX_USE_CXX11_ABI=1 -O3 -I. -ISeqLib -ISeqLib/htslib/ -c -o src/BED.o src/BED.cpp g++: error: unrecognized command line option ‘-std=c++14’ make: *** [src/BED.o] Error 1"

Any help with this issue will be much appreciated!

PS. Also, the collapse gtf code is no longer available. Do you mind providing alternative source? Thank you!

agraubert commented 4 years ago

To your first question, you need to make sure your GCC version is at least 5.2. Prior versions do not include support for c++14.

To the second, we apologize for the broken link but it is now fixed. You can access the collapsing script here

joshhjang commented 4 years ago

Thanks so much for your help and the collapsing script! Using gcc 7.5.0, I was able to overcome the previous issue. However, I'm hit with another error:

src/GTF.o: In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_match()':
GTF.cpp:(.text._ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE11match_matchEv[_ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE11match_matchEv]+0x2c7): undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&)'
collect2: error: ld returned 1 exit status
make: *** [rnaseqc] Error 1

Thanks again and sorry for the inconvenience.

agraubert commented 4 years ago

Linker errors can be hard to pin down, but I think this could be one of three things: 1) It's possible that it's an issue with the new C++ string ABI, in which case, you can disable RNA-SeQC's usage of that feature by setting this to 0 in your Makefile. You might have to run make clean in both the rnaseqc and seqlib directories (and possibly just delete seqlib/lib). After that, try make again to rebuild it. Disabling the ABI shouldn't effect RNA-SeQC's performance 2) It's also possible that your boost libraries are not compatible with this version of the C++ standard library. This probably isn't the issue, as boost tries to maintain backwards compatibility, but maybe it's not working here. I would try reinstalling/updating your boost libraries to the latest version. 3) Lastly, you could try lowering the C++ standard library version that RNA-SeQC uses here from std++14 to std++11, but I cannot guarantee that that won't just make things worse.

If possible, I would recommend using the pre-compiled binaries that we distribute on our releases page. These should work on any Linux or OSX platform, but I understand that there are situations where compiling from source is more viable

agraubert commented 3 years ago

Closing due to inactivity. Feel free to comment and reopen if you're still having this problem