[Rcpp-devel] no matching function for call in mzR on Mac afterRcpp 0.11.0 updatee

Laurent Gatto lg390 at cam.ac.uk
Thu May 15 00:11:13 CEST 2014


Updated to boost 1_54 and latest pwiz - see https://github.com/sneumann/mzR/tree/test for details.

[...]
g++ -shared -L/usr/local/lib -o mzR.so cramp.o ramp_base64.o ramp.o RcppRamp.o RcppRampModule.o rnetCDF.o ./boost/system/src/error_code.o ./boost/regex/src/posix_api.o ./boost/regex/src/fileiter.o ./boost/regex/src/regex_raw_buffer.o ./boost/regex/src/cregex.o ./boost/regex/src/regex_debug.o ./boost/regex/src/instances.o ./boost/regex/src/icu.o ./boost/regex/src/usinstances.o ./boost/regex/src/regex.o ./boost/regex/src/wide_posix_api.o ./boost/regex/src/regex_traits_defaults.o ./boost/regex/src/winstances.o ./boost/regex/src/wc_regex_traits.o ./boost/regex/src/c_regex_traits.o ./boost/regex/src/cpp_regex_traits.o ./boost/regex/src/static_mutex.o ./boost/regex/src/w32_regex_traits.o ./pwiz/data/msdata/Version.o ./pwiz/utility/minimxml/XMLWriter.o ./pwiz/utility/minimxml/SAXParser.o ./boost/iostreams/src/zlib.o ./boost/thread/src/pthread/once.o ./boost/filesystem/src/operations.o ./pwiz/data/common/MemoryIndex.o ./pwiz/data/common/CVTranslator.o ./pwiz/data/common/cv.o ./pwiz/data/common/ParamTypes.o ./pwiz/data/common/BinaryIndexStream.o ./pwiz/data/common/diff_std.o ./pwiz/data/msdata/SpectrumList_MGF.o ./pwiz/data/msdata/DefaultReaderList.o ./pwiz/data/msdata/ChromatogramList_mzML.o ./pwiz/data/msdata/examples.o ./pwiz/data/msdata/Serializer_mzML.o ./pwiz/data/msdata/Serializer_MSn.o ./pwiz/data/msdata/Reader.o ./pwiz/data/msdata/Serializer_MGF.o ./pwiz/data/msdata/Serializer_mzXML.o ./pwiz/data/msdata/SpectrumList_mzML.o ./pwiz/data/msdata/SpectrumList_MSn.o ./pwiz/data/msdata/BinaryDataEncoder.o ./pwiz/data/msdata/Diff.o ./pwiz/data/msdata/MSData.o ./pwiz/data/msdata/References.o ./pwiz/data/msdata/SpectrumList_mzXML.o ./pwiz/data/msdata/IO.o ./pwiz/data/msdata/SpectrumList_BTDX.o ./pwiz/data/msdata/SpectrumInfo.o ./pwiz/data/msdata/RAMPAdapter.o ./pwiz/data/msdata/LegacyAdapter.o ./pwiz/data/msdata/SpectrumIterator.o ./pwiz/data/msdata/MSDataFile.o ./pwiz/data/msdata/SpectrumListCache.o ./pwiz/utility/misc/IntegerSet.o ./pwiz/utility/misc/Base64.o ./pwiz/utility/misc/IterationListener.o ./pwiz/utility/misc/MSIHandler.o ./pwiz/utility/misc/Filesystem.o ./pwiz/utility/misc/TabReader.o ./pwiz/utility/misc/random_access_compressed_ifstream.o ./pwiz/utility/misc/SHA1.o ./pwiz/utility/misc/SHA1Calculator.o ./pwiz/utility/misc/sha1calc.o ./random_access_gzFile.o rampR.o -lpthread -lnetcdf -lhdf5 -lz -L/usr/local/lib/R/lib -lR
/bin/bash: line 2: nc-config: command not found
make[1]: Leaving directory `/home/lgatto/dev/00_github/mzR.Rcheck/00_pkg_src/mzR/src'
make[1]: Entering directory `/home/lgatto/dev/00_github/mzR.Rcheck/00_pkg_src/mzR/src'
make[1]: Leaving directory `/home/lgatto/dev/00_github/mzR.Rcheck/00_pkg_src/mzR/src'
installing to /home/lgatto/dev/00_github/mzR.Rcheck/mzR/libs
** R
** inst
** preparing package for lazy loading
Creating a generic function for ‘close’ from package ‘base’ in package ‘mzR’
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/lgatto/dev/00_github/mzR.Rcheck/mzR/libs/mzR.so':
  /home/lgatto/dev/00_github/mzR.Rcheck/mzR/libs/mzR.so: undefined symbol: _ZTIN5boost6detail16thread_data_baseE
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/lgatto/dev/00_github/mzR.Rcheck/mzR’

with 

echo _ZTIN5boost6detail16thread_data_baseE  | c++filt
typeinfo for boost::detail::thread_data_base

Any suggestions welcome.

Laurent


On 14 May 2014 09:07, Laurent Gatto <lg390 at cam.ac.uk> wrote:

> We hope to be able to provide a fix soon - will get back to you later
> today. Apologies for the inconvenience.
>
> Laurent
>
>
> On 14 May 2014 05:49, Kevin Ushey <kevinushey at gmail.com> wrote:
>
>> Hi Jack,
>>
>> I've already brought this up with the package maintainer. It's because
>> they bundle an old, broken version of boost. I asked them to fix it; I
>> guess they haven't (the BioC build reports also show it failing on
>> Mavericks) I've appended a copy of my e-mail at the end of this just
>> so you know what's up (and maybe others having problems will stumble
>> upon it).
>>
>> A local fix would involve removing the (broken, illegal) forward declarations.
>>
>> The error you saw before, re reference classes, was something separate
>> -- that was indeed our bug, and is fixed in the current version of
>> Rcpp on CRAN.
>>
>> Thanks,
>> Kevin
>>
>> ---
>>
>> Hi Bernd, Nicolas,
>>
>> I'm unable to install mzR from source. Here's the script I use:
>>
>> #!/usr/bin/env sh
>>
>> cd ~
>> mkdir .mzR
>> cd .mzR
>> wget http://www.bioconductor.org/packages/devel/bioc/src/contrib/mzR_1.9.8.tar.gz
>> R CMD INSTALL mzR_1.9.8.tar.gz
>>
>> This gives me the same error as Nicolas sees:
>>
>> In file included from pwiz/data/msdata/DefaultReaderList.cpp:40:
>>
>> In file included from ./boost/regex.hpp:31:
>> In file included from ./boost/regex/v4/regex.hpp:67:
>> ./boost/regex/v4/basic_regex.hpp:149:9: error: too few template
>> arguments for class
>>       template 'vector'
>>    std::vector<name> m_sub_names;
>>         ^
>> ./boost/detail/container_fwd.hpp:82:47: note: template is declared here
>>     template <class T, class Allocator> class vector;
>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>
>> This is actually a case of boost doing something it shouldn't -- it's
>> trying to forward-declare std::vector, but one cannot assume the
>> template structure of a vector is of <class T, class Allocator> -- in
>> particular this breaks on clang with libc++. See e.g.
>> http://stackoverflow.com/questions/307343/forward-declare-an-stl-container
>>
>> One can work around this by forcing the following Makevars flags:
>>
>>     PKG_CXXFLAGS=-std=gnu++11 -stdlib=libstdc++
>>
>> However, this will only work if both Rcpp and mzR are built with the
>> same flags, and using libstdc++ kind of defeats the purpose of using
>> clang...
>>
>> I'm sure you'll get some mail from Dan Tenenbaum when he tries to
>> build the package on the new Mavericks machines, so I think you will
>> have to either update the version of boost packaged with mzR, or fix
>> the forward declarations that it tries to use.
>>
>> Cheers,
>> Kevin
>>
>> On Tue, May 13, 2014 at 8:52 PM, Jack Howarth
>> <howarth.mailing.lists at gmail.com> wrote:
>>> After updating the bioconductor packages to the Bioc 2.14 release, I ran in
>>> to this failure on Mac OS X 10.9 with the clang compilers from Xcode 5.1.1.
>>> Interestingly, this failure doesn't occur on Mac OS X  10.8 with the clang
>>> compilers from Xcode 5.1.1 which suggests it somehow libc++ related. The
>>> error below is suppressed on 10.9 f I append -stdlib=libstdc++ to the
>>> compile line so it is definitely libc++ specific.
>>>              Jack
>>> ps The error I see in mzR  using Rcpp 0.11.1 is…
>>>
>>> clang++ -I/sw/Library/Frameworks/R.framework/Versions/3.1/Resources/include
>>> -DNDEBUG -D_LARGEFILE_SOURCE -I./boost_aux/ -I. -DHAVE_PWIZ_MZML_LIB
>>> -D_NODEBUG -I/sw/include -I"/sw/lib/R/3.1/site-library/Rcpp/include"   -fPIC
>>> -g -O3  -c boost/regex/src/posix_api.cpp -o boost/regex/src/posix_api.o
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:149:9: error: too few template arguments
>>> for class template 'vector'
>>>    std::vector<name> m_sub_names;
>>>         ^
>>> ./boost/detail/container_fwd.hpp:82:47: note: template is declared here
>>>     template <class T, class Allocator> class vector;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:131:21: error: too few template arguments
>>> for class template 'vector'
>>>       typename std::vector<name>::const_iterator pos =
>>> std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
>>>                     ^
>>> ./boost/detail/container_fwd.hpp:82:47: note: template is declared here
>>>     template <class T, class Allocator> class vector;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:131:35: error: expected a qualified name
>>> after 'typename'
>>>       typename std::vector<name>::const_iterator pos =
>>> std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
>>>                                   ^
>>> ./boost/regex/v4/basic_regex.hpp:131:35: error: unknown type name
>>> 'const_iterator'
>>> ./boost/regex/v4/basic_regex.hpp:141:21: error: too few template arguments
>>> for class template 'vector'
>>>       typename std::vector<name>::const_iterator pos =
>>> std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
>>>                     ^
>>> ./boost/detail/container_fwd.hpp:82:47: note: template is declared here
>>>     template <class T, class Allocator> class vector;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:141:35: error: expected a qualified name
>>> after 'typename'
>>>       typename std::vector<name>::const_iterator pos =
>>> std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
>>>                                   ^
>>> ./boost/regex/v4/basic_regex.hpp:141:35: error: unknown type name
>>> 'const_iterator'
>>> ./boost/regex/v4/basic_regex.hpp:163:12: error: too few template arguments
>>> for class template 'vector'
>>>       std::vector<Other> v;
>>>            ^
>>> ./boost/detail/container_fwd.hpp:82:47: note: template is declared here
>>>     template <class T, class Allocator> class vector;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:228:9: error: too few template arguments
>>> for class template 'vector'
>>>    std::vector<
>>>         ^
>>> ./boost/detail/container_fwd.hpp:82:47: note: template is declared here
>>>     template <class T, class Allocator> class vector;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:269:9: error: too few template arguments
>>> for class template 'basic_string'
>>>    std::basic_string<charT> BOOST_REGEX_CALL str()const
>>>         ^
>>> ./boost/detail/container_fwd.hpp:63:65: note: template is declared here
>>>     template <class charT, class traits, class Allocator> class
>>> basic_string;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:271:12: error: too few template arguments
>>> for class template 'basic_string'
>>>       std::basic_string<charT> result;
>>>            ^
>>> ./boost/detail/container_fwd.hpp:63:65: note: template is declared here
>>>     template <class charT, class traits, class Allocator> class
>>> basic_string;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:273:24: error: too few template arguments
>>> for class template 'basic_string'
>>>          result = std::basic_string<charT>(this->m_expression,
>>> this->m_expression_len);
>>>                        ^
>>> ./boost/detail/container_fwd.hpp:63:65: note: template is declared here
>>>     template <class charT, class traits, class Allocator> class
>>> basic_string;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:285:68: error: implicit instantiation of
>>> undefined template 'std::pair<unsigned long, unsigned long>'
>>>       std::pair<const_iterator, const_iterator> p(expression() + pi.first,
>>> expression() + pi.second);
>>>                                                                    ^
>>> ./boost/detail/container_fwd.hpp:92:42: note: template is declared here
>>>     template <class T1, class T2> struct pair;
>>>                                          ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:527:9: error: too few template arguments
>>> for class template 'basic_string'
>>>    std::basic_string<charT> BOOST_REGEX_CALL str()const
>>>         ^
>>> ./boost/detail/container_fwd.hpp:63:65: note: template is declared here
>>>     template <class charT, class traits, class Allocator> class
>>> basic_string;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:67:
>>> ./boost/regex/v4/basic_regex.hpp:529:52: error: too few template arguments
>>> for class template 'basic_string'
>>>       return m_pimpl.get() ? m_pimpl->str() : std::basic_string<charT>();
>>>                                                    ^
>>> ./boost/detail/container_fwd.hpp:63:65: note: template is declared here
>>>     template <class charT, class traits, class Allocator> class
>>> basic_string;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:70:
>>> ./boost/regex/v4/basic_regex_creator.hpp:140:26: error: too few template
>>> arguments for class template 'vector'
>>>    typedef typename std::vector<digraph_type>::const_iterator
>>> list_iterator;
>>>                          ^
>>> ./boost/detail/container_fwd.hpp:82:47: note: template is declared here
>>>     template <class T, class Allocator> class vector;
>>>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
>>> In file included from boost/regex/src/posix_api.cpp:22:
>>> In file included from ./boost/regex.hpp:31:
>>> In file included from ./boost/regex/v4/regex.hpp:70:
>>> ./boost/regex/v4/basic_regex_creator.hpp:140:48: error: expected a qualified
>>> name after 'typename'
>>>    typedef typename std::vector<digraph_type>::const_iterator
>>> list_iterator;
>>>                                                ^
>>> ./boost/regex/v4/basic_regex_creator.hpp:140:62: error: expected ';' at end
>>> of declaration list
>>>    typedef typename std::vector<digraph_type>::const_iterator
>>> list_iterator;
>>>                                                              ^
>>>                                                              ;
>>> ./boost/regex/v4/basic_regex_creator.hpp:141:4: error: unknown type name
>>> 'list_iterator'
>>>    list_iterator singles_begin()const
>>>    ^
>>> fatal error: too many errors emitted, stopping now [-ferror-limit=]
>>> 20 errors generated.
>>>
>>>
>>> _______________________________________________
>>> Rcpp-devel mailing list
>>> Rcpp-devel at lists.r-forge.r-project.org
>>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>> _______________________________________________
>> Rcpp-devel mailing list
>> Rcpp-devel at lists.r-forge.r-project.org
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel



More information about the Rcpp-devel mailing list