Skip to content

ChemmineOB not compiling from Bioconductor in Mac 13.5.2 #35

@deb-m

Description

@deb-m

When I try to install ChemmineOB from Bioconductor using this command

if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager") 
BiocManager::install("ChemmineOB", force = TRUE)"

I am getting the following output. I know it did not find openbabel, though the problem seems to be related to compilation issue with respect to using "std::binary_function" instead of "std::__binary_function" in the ChemmineOB.cpp source code.

getOption("repos")' replaces Bioconductor standard repositories, see 'help("repositories", package = "BiocManager")' for details.
Replacement repositories:
    CRAN: https://cran.rstudio.com/
Bioconductor version 3.18 (BiocManager 1.30.22), R 4.3.3 (2024-02-29)
Installing package(s) 'ChemmineOB'
trying URL 'https://bioconductor.org/packages/3.18/bioc/src/contrib/ChemmineOB_1.40.0.tar.gz'
Content type 'application/x-gzip' length 1366043 bytes (1.3 MB)
==================================================
downloaded 1.3 MB

* installing *source* package ‘ChemmineOB’ ...
** using staged installation
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for OPENBABEL... no
checking for OPENBABEL... no
checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking how to run the C preprocessor... clang -E
configure: creating ./config.status
config.status: creating src/Makevars
** libs
using C++ compiler: ‘Apple clang version 15.0.0 (clang-1500.0.40.1)’
using SDK: ‘MacOSX14.0.sdk’
clang++ -std=gnu++17 -I"/usr/local/Cellar/r/4.3.3/lib/R/include" -DNDEBUG -I/usr/include/openbabel3  -I/usr/include/eigen3  -DUSE_BOOST -DHAVE_EIGEN  -I/usr/local/include/eigen3 -I/usr/local/include/openbabel3    -I'/usr/local/lib/R/4.3/site-library/BH/include' -I'/usr/local/lib/R/4.3/site-library/Rcpp/include' -I'/usr/local/lib/R/4.3/site-library/zlibbioc/include' -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/opt/xz/include -I/usr/local/include    -fPIC  -g -O2  -c ChemmineOB.cpp -o ChemmineOB.o
In file included from ChemmineOB.cpp:1587:
In file included from /usr/local/include/openbabel3/openbabel/obconversion.h:37:
In file included from /usr/local/include/openbabel3/openbabel/format.h:22:
/usr/local/include/openbabel3/openbabel/plugin.h:41:42: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
struct OBERROR CharPtrLess : public std::binary_function<const char*,const char*, bool>
                                    ~~~~~^~~~~~~~~~~~~~~
                                         __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
ChemmineOB.cpp:13728:45: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
SWIGEXPORT SEXP R_swig_new_dummy ( ) { std::binary_function< char const *,char const *,bool > *result = 0 ;
                                       ~~~~~^~~~~~~~~~~~~~~
                                            __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
ChemmineOB.cpp:13730:18: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
  result = (std::binary_function< char const *,char const *,bool > *)new std::binary_function< char const *,char const *,bool >();
            ~~~~~^~~~~~~~~~~~~~~
                 __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
ChemmineOB.cpp:13730:79: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
  result = (std::binary_function< char const *,char const *,bool > *)new std::binary_function< char const *,char const *,bool >();
                                                                         ~~~~~^~~~~~~~~~~~~~~
                                                                              __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
ChemmineOB.cpp:13734:8: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
  std::binary_function< char const *,char const *,bool > *arg1 = (std::binary_function< char const *,char const *,bool > *) 0 ;
  ~~~~~^~~~~~~~~~~~~~~
       __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
ChemmineOB.cpp:13734:72: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
  std::binary_function< char const *,char const *,bool > *arg1 = (std::binary_function< char const *,char const *,bool > *) 0 ;
                                                                  ~~~~~^~~~~~~~~~~~~~~
                                                                       __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
ChemmineOB.cpp:13739:34: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
   arg1 = reinterpret_cast< std::binary_function< char const *,char const *,bool > * >(argp1); delete arg1; r_ans = R_NilValue;
                            ~~~~~^~~~~~~~~~~~~~~
                                 __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
ChemmineOB.cpp:39656:27: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
    return (void *)((std::binary_function< char const *,char const *,bool > *)  ((OpenBabel::CharPtrLess *) x));
                     ~~~~~^~~~~~~~~~~~~~~
                          __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
^
8 errors generated.
make: *** [ChemmineOB.o] Error 1
ERROR: compilation failed for package ‘ChemmineOB’
* removing ‘/usr/local/lib/R/4.3/site-library/ChemmineOB’

The downloaded source packages are in
	‘/private/var/folders/zq/177206l93831d3zm33nvmc4w0000gn/T/Rtmp1Qy5L3/downloaded_packages’
Warning message:
In install.packages(...) :
  installation of package ‘ChemmineOB’ had non-zero exit status

Any help regarding this issue will be much appreciated.
Thanks
Deb

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions