PhreeqcUsers Discussion Forum

Please email phreeqcusers at gmail.com with your name and affiliation to request an account.
Welcome Guest
 

  • Forum Home
  • Login
  • Register

  • PhreeqcUsers Discussion Forum »
  • Beginners »
  • Installation questions »
  • Error-PhreeqcRM compilation on MacOS Catalina
« previous next »
  • Print
Pages: [1]   Go Down

Author Topic: Error-PhreeqcRM compilation on MacOS Catalina  (Read 10695 times)

Christinali91

  • Top Contributor
  • Posts: 30
Error-PhreeqcRM compilation on MacOS Catalina
« on: 01/02/20 19:26 »
Hi David,

I am trying to compile PhreeqcRM on MacOS Catalina. As a big change in Catalina, the C++ directory is moved out from /usr/include. This gives me a lot of trouble in the begining. After some struggling, I found MacOS Catalina 10.15.3 seems to fix this directory path issue and PhreeqcRM is able to find stdlib.h file. I think this may be a useful tip for others using Catalina.

After fixed the directory path issue. I ran into the information below in the end of the compilation:
Code: [Select]
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: .libs/libphreeqcrm.a(ChartHandler.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: .libs/libphreeqcrm.a(ChartObject.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: .libs/libphreeqcrm.a(CurveObject.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: .libs/libphreeqcrm.a(ChartHandler.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: .libs/libphreeqcrm.a(ChartObject.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: .libs/libphreeqcrm.a(CurveObject.o) has no symbols
Then the errors show up during 'make check'.
Code: [Select]
   PPFC     species_f90.o
  GEN      test
Undefined symbols for architecture x86_64:
  "std::ctype<char>::_M_widen_init() const", referenced from:
      units_tester()     in advection_cpp.o
      species_cpp()     in species_cpp.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const", referenced from:
      example_selected_output(PhreeqcRM&)     in advection_cpp.o
      my_basic_callback(double, double, char const*, void*) in advection_cpp.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)", referenced from:
      example_selected_output(PhreeqcRM&)     in advection_cpp.o
      units_tester()     in advection_cpp.o
      advection_cpp()     in advection_cpp.o
      species_cpp()     in species_cpp.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      example_selected_output(PhreeqcRM&)     in advection_cpp.o
      advection_cpp()     in advection_cpp.o
      species_cpp()     in species_cpp.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)", referenced from:
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) in advection_cpp.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) in advection_cpp.o
      species_cpp()     in species_cpp.o
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.86] in species_cpp.o
  "std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()", referenced from:
      example_selected_output(PhreeqcRM&) [clone .cold.196] in advection_cpp.o
      advection_cpp() [clone .cold.198] in advection_cpp.o
      species_cpp() [clone .cold.158] in species_cpp.o
  "VTT for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >", referenced from:
      example_selected_output(PhreeqcRM&)     in advection_cpp.o
      advection_cpp()     in advection_cpp.o
      species_cpp()     in species_cpp.o
  "vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >", referenced from:
      std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf() in advection_cpp.o
      example_selected_output(PhreeqcRM&)     in advection_cpp.o
      advection_cpp()     in advection_cpp.o
      std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf() in species_cpp.o
      species_cpp()     in species_cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >", referenced from:
      example_selected_output(PhreeqcRM&)     in advection_cpp.o
      advection_cpp()     in advection_cpp.o
      species_cpp()     in species_cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator delete(void*, unsigned long)", referenced from:
      PhreeqcRMStop::~PhreeqcRMStop() in advection_cpp.o
      PhreeqcRMStop::~PhreeqcRMStop() in species_cpp.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [test] Error 1
make[1]: *** [check-am] Error 2
make: *** [check-recursive] Error 1

I used the latest version of PhreeqcRM(3.6.1) and the compiler information is as below:
Code: [Select]
Summary:
C++ Compiler                 = icc
CPPFLAGS                     =
CXXFLAGS                     = -g -O2
Fortran Compiler             = ifort
Fortran Libs                 =  -L/opt/intel//compilers_and_libraries_2020.0.166/mac/compiler/lib -L/usr/lib /opt/intel//compilers_and_libraries_2020.0.166/mac/compiler/lib/libifport.a /opt/intel//compilers_and_libraries_2020.0.166/mac/compiler/lib/libifcoremt.a /opt/intel//compilers_and_libraries_2020.0.166/mac/compiler/lib/libimf.a /opt/intel//compilers_and_libraries_2020.0.166/mac/compiler/lib/libsvml.a /opt/intel//compilers_and_libraries_2020.0.166/mac/compiler/lib/libipgo.a /opt/intel//compilers_and_libraries_2020.0.166/mac/compiler/lib/libirc.a -lpthread /Library/Developer/CommandLineTools/usr/lib/clang/11.0.0/lib/darwin/libclang_rt.osx.a
LDFLAGS                      =
Enable OpenMP             = yes
Enable MPI                   = no

Any hints will be greatly appreciated. Thanks a lot!

Best,
Logged

kayakernate

  • Frequent Contributor
  • Posts: 11
Re: Error-PhreeqcRM compilation on MacOS Catalina
« Reply #1 on: 21/07/20 17:56 »
Hi Chistinali91,

I was wondering if you ever figured out your compilation errors for MacOS Catalina. I am currently trying to build from source on 10.15.5 and I'm having a lot of trouble. Here is a link to my post: https://phreeqcusers.org/index.php?topic=1563.msg5066#msg5066.

Any help would be greatly appreciated.

Best,
Nathan
Logged

  • Print
Pages: [1]   Go Up
« previous next »
  • PhreeqcUsers Discussion Forum »
  • Beginners »
  • Installation questions »
  • Error-PhreeqcRM compilation on MacOS Catalina
 

  • SMF 2.0.19 | SMF © 2021, Simple Machines | Terms and Policies
  • XHTML
  • RSS
  • WAP2