2013fangwentao/Multi_Sensor_Fusion

build fails in macOS Monterey 12.3.1 Apple M1 MacBook Pro

amirhosseingholami opened this issue · 1 comments

HI, I'm trying to build Multi_Sensor_Fusion but it looks like there is a problem, would you please check and let me know what is the problem ?

amirhosseingholami@Amirhosseins-MacBook-Pro build % cmake .. -DGLOG_INCLUDE_DIR=/opt/homebrew/Cellar/glog/0.5.0/include -DGFLAGS_INCLUDE_DIRS=/opt/homebrew/Cellar/gflags/2.2.2/include -DCERES_INCLUDE_DIRS=/opt/homebrew/Cellar/ceres-solver/2.0.0_4/include -DEIGEN3_INCLUDE_DIRS=/opt/homebrew/Cellar/eigen/3.4.0_1/include
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is AppleClang 13.1.6.13160021
-- The CXX compiler identification is AppleClang 13.1.6.13160021
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /opt/homebrew/Cellar/opencv/4.5.5_1 (found version "4.5.5") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found CXSparse: /opt/homebrew/include (found suitable version "3.2.0", minimum required is "3.2.0") 
-- Found AMD headers in: /opt/homebrew/include
-- Found AMD library: /opt/homebrew/lib/libamd.dylib
-- Found CAMD headers in: /opt/homebrew/include
-- Found CAMD library: /opt/homebrew/lib/libcamd.dylib
-- Found CCOLAMD headers in: /opt/homebrew/include
-- Found CCOLAMD library: /opt/homebrew/lib/libccolamd.dylib
-- Found CHOLMOD headers in: /opt/homebrew/include
-- Found CHOLMOD library: /opt/homebrew/lib/libcholmod.dylib
-- Found COLAMD headers in: /opt/homebrew/include
-- Found COLAMD library: /opt/homebrew/lib/libcolamd.dylib
-- Found SPQR headers in: /opt/homebrew/include
-- Found SPQR library: /opt/homebrew/lib/libspqr.dylib
-- Found Config headers in: /opt/homebrew/include
-- Found Config library: /opt/homebrew/lib/libsuitesparseconfig.dylib
-- Found Intel Thread Building Blocks (TBB) library (2021.5 / ) include location: . Assuming SuiteSparseQR was compiled with TBB.
-- Looking for shm_open in rt
-- Looking for shm_open in rt - not found
-- Could not find librt, but found SuiteSparse_config, assuming that SuiteSparse was compiled without timing.
-- Found METIS: /opt/homebrew/include (found version "5.1.0") 
-- Found SuiteSparse: /opt/homebrew/include (found suitable version "5.12.0", minimum required is "5.11.0") found components: AMD CAMD CCOLAMD CHOLMOD COLAMD SPQR Config 
-- Found required Ceres dependency: Eigen version 3.4.0 in /opt/homebrew/share/eigen3/cmake
-- Found required Ceres dependency: glog
-- Found required Ceres dependency: gflags
-- Found Ceres version: 2.1.0 installed in: /opt/homebrew with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, AccelerateSparse, SchurSpecializations, Multithreading]
-- Eigen include: /opt/homebrew/include/eigen3
-- OpenCV include: /opt/homebrew/Cellar/opencv/4.5.5_1/include/opencv4
-- Ceres include: /opt/homebrew/Cellar/ceres-solver/2.0.0_4/include
-- glog include: /opt/homebrew/Cellar/glog/0.5.0/include
CMake Deprecation Warning at submodules/tools/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at src/filter/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at src/imu/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at src/camera/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at src/data/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at src/process/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at test/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at tools/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at exec/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Configuring done
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   camera
   data
   filter
   imu
   process
   tools

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/build
amirhosseingholami@Amirhosseins-MacBook-Pro build % make
[  1%] Building CXX object submodules/tools/CMakeFiles/tools.dir/src/navattitude.cc.o
[  3%] Building CXX object submodules/tools/CMakeFiles/tools.dir/src/navbase.cc.o
[  5%] Building CXX object submodules/tools/CMakeFiles/tools.dir/src/navconfig.cc.o
In file included from /Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/submodules/tools/src/navconfig.cc:1:
/Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/submodules/tools/include/navconfig.hpp:129:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
1 warning generated.
[  6%] Building CXX object submodules/tools/CMakeFiles/tools.dir/src/navearth.cc.o
[  8%] Building CXX object submodules/tools/CMakeFiles/tools.dir/src/navtime.cc.o
/Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/submodules/tools/src/navtime.cc:27:1: warning: non-void function does not return a value [-Wreturn-type]
}
^
1 warning generated.
[ 10%] Linking CXX shared library ../../../bin/libtools.dylib
[ 10%] Built target tools
[ 11%] Building CXX object src/filter/CMakeFiles/filter.dir/navfilter.cc.o
In file included from /Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/src/filter/navfilter.cc:12:
/Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/submodules/tools/include/navconfig.hpp:129:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
/Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/src/filter/navfilter.cc:98:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
In file included from /Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/src/filter/navfilter.cc:12:
/Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/submodules/tools/include/navconfig.hpp:73:3: warning: non-void function does not return a value in all control paths [-Wreturn-type]
  }
  ^
/Users/amirhosseingholami/Git/MMS/Multi_Sensor_Fusion/src/filter/navfilter.cc:260:15: note: in instantiation of function template specialization 'utiltool::ConfigInfo::get<int>' requested here
  if (config->get<int>("evaluate_imu_scale") != 0)
              ^
3 warnings generated.
[ 13%] Linking CXX shared library ../../../bin/libfilter.dylib
Undefined symbols for architecture arm64:
  "google::LogMessage::stream()", referenced from:
      mscnav::KalmanFilter::InitialStateCov(Eigen::Matrix<double, -1, 1, 0, -1, 1> const&) in navfilter.cc.o
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > utiltool::ConfigInfo::get<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> >) in navfilter.cc.o
      mscnav::KalmanFilter::TimeUpdate(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, utiltool::NavTime const&) in navfilter.cc.o
      mscnav::KalmanFilter::EliminateIndex(unsigned long, unsigned long) in navfilter.cc.o
      mscnav::KalmanFilter::InsertIndex(unsigned long, std::__1::vector<double, std::__1::allocator<double> >) in navfilter.cc.o
      int utiltool::ConfigInfo::get<int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in navfilter.cc.o
  "google::LogMessage::LogMessage(char const*, int)", referenced from:
      mscnav::KalmanFilter::InitialStateCov(Eigen::Matrix<double, -1, 1, 0, -1, 1> const&) in navfilter.cc.o
  "google::LogMessage::LogMessage(char const*, int, int)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > utiltool::ConfigInfo::get<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> >) in navfilter.cc.o
      mscnav::KalmanFilter::TimeUpdate(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, utiltool::NavTime const&) in navfilter.cc.o
      mscnav::KalmanFilter::EliminateIndex(unsigned long, unsigned long) in navfilter.cc.o
      mscnav::KalmanFilter::InsertIndex(unsigned long, std::__1::vector<double, std::__1::allocator<double> >) in navfilter.cc.o
      int utiltool::ConfigInfo::get<int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in navfilter.cc.o
  "google::LogMessage::~LogMessage()", referenced from:
      mscnav::KalmanFilter::InitialStateCov(Eigen::Matrix<double, -1, 1, 0, -1, 1> const&) in navfilter.cc.o
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > utiltool::ConfigInfo::get<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> >) in navfilter.cc.o
      mscnav::KalmanFilter::TimeUpdate(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, utiltool::NavTime const&) in navfilter.cc.o
      mscnav::KalmanFilter::EliminateIndex(unsigned long, unsigned long) in navfilter.cc.o
      mscnav::KalmanFilter::InsertIndex(unsigned long, std::__1::vector<double, std::__1::allocator<double> >) in navfilter.cc.o
      int utiltool::ConfigInfo::get<int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in navfilter.cc.o
  "google::LogMessageFatal::LogMessageFatal(char const*, int)", referenced from:
      mscnav::KalmanFilter::InitialStateCov(Eigen::Matrix<double, -1, 1, 0, -1, 1> const&) in navfilter.cc.o
  "google::LogMessageFatal::~LogMessageFatal()", referenced from:
      mscnav::KalmanFilter::InitialStateCov(Eigen::Matrix<double, -1, 1, 0, -1, 1> const&) in navfilter.cc.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../bin/libfilter.dylib] Error 1
make[1]: *** [src/filter/CMakeFiles/filter.dir/all] Error 2
make: *** [all] Error 2
amirhosseingholami@Amirhosseins-MacBook-Pro build %