ld: symbol(s) not found for architecture x86_64 in dmlc

I want to read the Xgboost source code and run the `parameter.cc on mac. this is my command:

cd dmlc-core/example
gcc -std=c++11   -I ../include parameter.cc -o parameter -v

But it throws exceptions ld: symbol(s) not found for architecture x86_64.

Anyone knows how to fix it? Thanks advance!

Below is the stacktrace,due to the question body length limitation, I ommitted some part of the stacktrace.

Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
 "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.14.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name parameter.cc -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=10.14 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 450.3 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I ../include -I/usr/local/include -stdlib=libc++ -Wno-atomic-implicit-seq-cst -Wno-framework-include-private-from-public -Wno-atimport-in-framework-header -Wno-quoted-include-in-framework-header -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /Users/songwei/machineLearning/xgboost/dmlc-core/example -ferror-limit 19 -fmessage-length 172 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fobjc-runtime=macosx-10.14.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/tr/lf3tt17j553b8r552_j5nx080000gp/T/parameter-b66ec3.o -x c++ parameter.cc
clang -cc1 version 10.0.1 (clang-1001.0.46.4) default target x86_64-apple-darwin18.7.0
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/v1"
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/local/include"
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
 ../include
 /usr/local/include
 /Library/Developer/CommandLineTools/usr/include/c++/v1
 /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include
 /Library/Developer/CommandLineTools/usr/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks (framework directory)
End of search list.
 "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -no_deduplicate -dynamic -arch x86_64 -macosx_version_min 10.14.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -o parameter /var/folders/tr/lf3tt17j553b8r552_j5nx080000gp/T/parameter-b66ec3.o -L/usr/local/lib -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
  "std::runtime_error::what() const", referenced from:
      vtable for dmlc::ParamError in parameter-b66ec3.o
      vtable for dmlc::Error in parameter-b66ec3.o
  "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from:
      std::__1::vector<void*, std::__1::allocator<void*> >::__vallocate(unsigned long) in parameter-b66ec3.o
      std::__1::vector<dmlc::parameter::FieldAccessEntry*, std::__1::allocator<dmlc::parameter::FieldAccessEntry*> >::__recommend(unsigned long) const in parameter-b66ec3.o
      std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::__recommend(unsigned long) const in parameter-b66ec3.o
  "std::__1::__basic_string_common<true>::__throw_length_error() const", referenced from:
      std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init<char*>(char*, char*) in parameter-b66ec3.o
  "std::__1::__basic_string_common<true>::__throw_out_of_range() const", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, std::__1::allocator<char> const&) in parameter-b66ec3.o
  "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
      std::__1::ctype<char> const& std::__1::use_facet<std::__1::ctype<char> >(std::__1::locale const&) in parameter-b66ec3.o
  "std::__1::ios_base::getloc() const", referenced from:
      std::__1::basic_ios<char, std::__1::char_traits<char> >::widen(char) const in parameter-b66ec3.o
      std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::operator>><char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in parameter-b66ec3.o
  "std::logic_error::logic_error(char const*)", referenced from:
      std::length_error::length_error(char const*) in parameter-b66ec3.o
      std::out_of_range::out_of_range(char const*) in parameter-b66ec3.o
      std::invalid_argument::invalid_argument(char const*) in parameter-b66ec3.o
  "std::length_error::~length_error()", referenced from:
      std::__1::__throw_length_error(char const*) in parameter-b66ec3.o
  "std::out_of_range::~out_of_range()", referenced from:
      std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::at(int const&) const in parameter-b66ec3.o
      dmlc::stof(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long*) in parameter-b66ec3.o
  "std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      dmlc::Error::Error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in parameter-b66ec3.o
  "std::runtime_error::~runtime_error()", referenced from:
      dmlc::Error::~Error() in parameter-b66ec3.o
  "std::invalid_argument::~invalid_argument()", referenced from:
      dmlc::stof(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long*) in parameter-b66ec3.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(char const*, unsigned long)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string<std::nullptr_t>(char const*) in parameter-b66ec3.o
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, std::__1::allocator<char> const&) in parameter-b66ec3.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(unsigned long, char)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(unsigned long, char) in parameter-b66ec3.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::assign(char const*)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(char const*) in parameter-b66ec3.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::resize(unsigned long, char)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::resize(unsigned long) in parameter-b66ec3.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::push_back(char)", referenced from:
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::overflow(int) in parameter-b66ec3.o
      std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::operator>><char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in parameter-b66ec3.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      dmlc::LogCheckError::LogCheckError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in parameter-b66ec3.o
      std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, dmlc::parameter::FieldAccessEntry*>::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, 0ul>(std::__1::piecewise_construct_t, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>&, std::__1::tuple<>&, std::__1::__tuple_indices<0ul>, std::__1::__tuple_indices<>) in parameter-b66ec3.o
      std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int>::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, 0ul>(std::__1::piecewise_construct_t, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>&, std::__1::tuple<>&, std::__1::__tuple_indices<0ul>, std::__1::__tuple_indices<>) in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::Same(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::GetStringValue(void*) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::PrintDefaultValueString(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const in parameter-b66ec3.o
      std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&) in parameter-b66ec3.o
      ...
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, unsigned long, std::__1::allocator<char> const&)", referenced from:
      dmlc::Demangle(char const*) in parameter-b66ec3.o
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::substr(unsigned long, unsigned long) const in parameter-b66ec3.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from:
      MyParam::__MANAGER__() in parameter-b66ec3.o
      _main in parameter-b66ec3.o
      dmlc::parameter::ParamManager::~ParamManager() in parameter-b66ec3.o
      std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, dmlc::parameter::FieldAccessEntry*>::~pair() in parameter-b66ec3.o
      std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~pair() in parameter-b66ec3.o
      MyParam::~MyParam() in parameter-b66ec3.o
      MyParam::__DECLARE__(dmlc::parameter::ParamManagerSingleton<MyParam>*) in parameter-b66ec3.o
      ...
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      dmlc::parameter::ParamManager::set_name(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<int>, int>::describe(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<float>, float>::describe(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in parameter-b66ec3.o
      dmlc::parameter::FieldEntry<int>::add_enum(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::set_default(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::describe(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<int>, int>::Init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, void*, int&) in parameter-b66ec3.o
      ...
  "std::__1::basic_istream<char, std::__1::char_traits<char> >::get()", referenced from:
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<int>, int>::Set(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<float>, float>::Set(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::Set(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
  "std::__1::basic_istream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_istream<char, std::__1::char_traits<char> >&, bool)", referenced from:
      std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::operator>><char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in parameter-b66ec3.o
  "std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char> >-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char> >-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:
      std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_istringstream(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int) in parameter-b66ec3.o
      std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_istringstream() in parameter-b66ec3.o
  "std::__1::basic_istream<char, std::__1::char_traits<char> >::operator>>(float&)", referenced from:
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<float>, float>::Same(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<float>, float>::Set(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
  "std::__1::basic_istream<char, std::__1::char_traits<char> >::operator>>(int&)", referenced from:
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<int>, int>::Same(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<int>, int>::Set(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::~sentry()", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_ostringstream(unsigned int) in parameter-b66ec3.o
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_ostringstream() in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(float)", referenced from:
      dmlc::parameter::FieldEntryNumeric<dmlc::parameter::FieldEntry<float>, float>::Check(void*) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntry<float>::PrintValue(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, float) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<float>, float>::PrintValue(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, float) const in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(int)", referenced from:
      dmlc::parameter::FieldEntry<int>::add_enum(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in parameter-b66ec3.o
      dmlc::parameter::FieldEntry<int>::Set(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryNumeric<dmlc::parameter::FieldEntry<int>, int>::Check(void*) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntry<int>::PrintValue(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int) const in parameter-b66ec3.o
      dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<int>, int>::PrintValue(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int) const in parameter-b66ec3.o
      dmlc::LogMessageFatal::LogMessageFatal(char const*, int) in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(unsigned int)", referenced from:
      dmlc::LogCheckError dmlc::LogCheck_NE<unsigned long, unsigned int>(unsigned long const&, unsigned int const&) in parameter-b66ec3.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(unsigned long)", referenced from:
      dmlc::LogCheckError dmlc::LogCheck_NE<unsigned long, unsigned int>(unsigned long const&, unsigned int const&) in parameter-b66ec3.o
      dmlc::StackTrace(unsigned long, unsigned long) in parameter-b66ec3.o
      dmlc::LogCheckError dmlc::LogCheck_LE<unsigned long, unsigned long>(unsigned long const&, unsigned long const&) in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::sync()", referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::imbue(std::__1::locale const&)", referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::uflow()", referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::setbuf(char*, long)", referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::xsgetn(char*, long)", referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::xsputn(char const*, long)", referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::showmanyc()", referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::basic_streambuf()", referenced from:
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_stringbuf(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int) in parameter-b66ec3.o
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_stringbuf(unsigned int) in parameter-b66ec3.o
  "std::__1::basic_streambuf<char, std::__1::char_traits<char> >::~basic_streambuf()", referenced from:
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_stringbuf(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int) in parameter-b66ec3.o
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
  "typeinfo for std::length_error", referenced from:
      std::__1::__throw_length_error(char const*) in parameter-b66ec3.o
  "typeinfo for std::out_of_range", referenced from:
      std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::at(int const&) const in parameter-b66ec3.o
      dmlc::stof(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long*) in parameter-b66ec3.o
      GCC_except_table739 in parameter-b66ec3.o
  "typeinfo for std::runtime_error", referenced from:
      typeinfo for dmlc::Error in parameter-b66ec3.o
  "typeinfo for std::invalid_argument", referenced from:
      dmlc::stof(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long*) in parameter-b66ec3.o
      GCC_except_table739 in parameter-b66ec3.o
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for dmlc::parameter::FieldAccessEntry in parameter-b66ec3.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for dmlc::parameter::FieldEntryBase<dmlc::parameter::FieldEntry<int>, int> in parameter-b66ec3.o
      typeinfo for dmlc::parameter::FieldEntryNumeric<dmlc::parameter::FieldEntry<int>, int> in parameter-b66ec3.o
      typeinfo for dmlc::parameter::FieldEntry<int> in parameter-b66ec3.o
      typeinfo for dmlc::Error in parameter-b66ec3.o
      typeinfo for dmlc::ParamError in parameter-b66ec3.o
      typeinfo for std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in parameter-b66ec3.o
      typeinfo for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> 
  "___gxx_personality_v0", referenced from:
      MyParam::__MANAGER__() in parameter-b66ec3.o
      _main in parameter-b66ec3.o
      dmlc::Parameter<MyParam>::__DOC__() in parameter-b66ec3.o
      dmlc::parameter::ParamManager::~ParamManager() in parameter-b66ec3.o
      std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, dmlc::parameter::FieldAccessEntry*>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, dmlc::parameter::FieldAccessEntry*>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, dmlc::parameter::FieldAccessEntry*> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, dmlc::parameter::FieldAccessEntry*>, void*>*) in parameter-b66ec3.o
      std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, dmlc::parameter::FieldAccessEntry*>, void*> >::deallocate(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, dmlc::parameter::FieldAccessEntry*>, void*>*, unsigned long) in parameter-b66ec3.o
      std::__1::__vector_base<dmlc::parameter::FieldAccessEntry*, std::__1::allocator<dmlc::parameter::FieldAccessEntry*> >::__destruct_at_end(dmlc::parameter::FieldAccessEntry**) in parameter-b66ec3.o
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

You should use g++ to build parameter.cc file.