Tudat / tudat

NOTE: This Tudat version is no longer supported. See https://docs.tudat.space/en/stable/ and https://github.com/tudat-team/tudat-bundle for the new version
BSD 3-Clause "New" or "Revised" License
87 stars 142 forks source link

Undefined symbols for architecture x86_64 #248

Closed aleixpinardell closed 6 years ago

aleixpinardell commented 6 years ago

I can't compile the latest code of the development branch:

[ 93%] Built target test_AccelerationModelCreation
[ 93%] Building CXX object tudatExampleApplications/satellitePropagatorExamples/SatellitePropagatorExamples/CMakeFiles/application_SinglePerturbedSatellitePropagator.dir/singlePerturbedSatellitePropagator.cpp.o
Scanning dependencies of target application_InnerSolarSystemPropagation
[ 93%] Building CXX object tudatExampleApplications/satellitePropagatorExamples/SatellitePropagatorExamples/CMakeFiles/application_InnerSolarSystemPropagation.dir/innerSolarSystemPropagation.cpp.o
[ 93%] Building CXX object tudat/Tudat/JsonInterface/CMakeFiles/json_interface_library.dir/Environment/atmosphere.cpp.o
[ 93%] Building CXX object tudat/Tudat/JsonInterface/CMakeFiles/json_interface_library.dir/Environment/ephemeris.cpp.o
[ 93%] Building CXX object tudat/Tudat/JsonInterface/CMakeFiles/json_interface_library.dir/Environment/aerodynamics.cpp.o
[ 93%] Linking CXX executable /Users/aleix/Documents/tudatBundle/tudatExampleApplications/satellitePropagatorExamples/bin/applications/application_GalileoConstellationSimulator
Undefined symbols for architecture x86_64:
  "tudat::sofa_interface::getTDBminusTT(double, double, double, double)", referenced from:
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<double>(tudat::basic_astrodynamics::TimeScales, double const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<tudat::Time>(tudat::basic_astrodynamics::TimeScales, tudat::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::sofa_interface::getDeltaAtFromUtc(double)", referenced from:
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<double>(tudat::basic_astrodynamics::TimeScales, double const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::calculateUniversalTimes<double>() in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<tudat::Time>(tudat::basic_astrodynamics::TimeScales, tudat::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      tudat::Time tudat::sofa_interface::convertTAItoUTC<tudat::Time>(tudat::Time) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "double tudat::sofa_interface::calculateEarthRotationAngleTemplated<tudat::Time>(tudat::Time)", referenced from:
      Eigen::Quaternion<double, 0> tudat::earth_orientation::calculateRotationFromItrsToGcrs<tudat::Time>(double, double, double, tudat::Time, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "double tudat::sofa_interface::calculateEarthRotationAngleTemplated<double>(double)", referenced from:
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      Eigen::Matrix<double, 3, 3, 0, 3, 3> tudat::earth_orientation::calculateRotationRateFromItrsToGcrs<double>(double, double, double, double, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::sofa_interface::calculateDelaunayFundamentalArgumentsWithGmst(double)", referenced from:
      boost::detail::sp_if_not_array<tudat::earth_orientation::ShortPeriodEarthOrientationCorrectionCalculator<Eigen::Matrix<double, 2, 1, 0, 2, 1> > >::type boost::make_shared<tudat::earth_orientation::ShortPeriodEarthOrientationCorrectionCalculator<Eigen::Matrix<double, 2, 1, 0, 2, 1> >, double&, double&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&>(double&&&, double&&&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&&&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&&&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      boost::detail::sp_if_not_array<tudat::earth_orientation::ShortPeriodEarthOrientationCorrectionCalculator<double> >::type boost::make_shared<tudat::earth_orientation::ShortPeriodEarthOrientationCorrectionCalculator<double>, double&, double&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&>(double&&&, double&&&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&&&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&&&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::PolarMotionCalculator::getPositionOfCipInItrs(double, double)", referenced from:
      std::__1::pair<Eigen::Matrix<double, 5, 1, 0, 5, 1>, double> tudat::earth_orientation::EarthOrientationAnglesCalculator::getRotationAnglesFromItrsToGcrs<double>(double, tudat::basic_astrodynamics::TimeScales) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      std::__1::pair<Eigen::Matrix<double, 5, 1, 0, 5, 1>, tudat::Time> tudat::earth_orientation::EarthOrientationAnglesCalculator::getRotationAnglesFromItrsToGcrs<tudat::Time>(double, tudat::basic_astrodynamics::TimeScales) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::getApproximateTioLocator(double)", referenced from:
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrameFromExtendedTime(tudat::Time) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      tudat::ephemerides::GcrsToItrsRotationModel::getDerivativeOfRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::PrecessionNutationCalculator::getPositionOfCipInGcrs(double, double)", referenced from:
      std::__1::pair<Eigen::Matrix<double, 5, 1, 0, 5, 1>, double> tudat::earth_orientation::EarthOrientationAnglesCalculator::getRotationAnglesFromItrsToGcrs<double>(double, tudat::basic_astrodynamics::TimeScales) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      std::__1::pair<Eigen::Matrix<double, 5, 1, 0, 5, 1>, tudat::Time> tudat::earth_orientation::EarthOrientationAnglesCalculator::getRotationAnglesFromItrsToGcrs<tudat::Time>(double, tudat::basic_astrodynamics::TimeScales) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::PrecessionNutationCalculator::PrecessionNutationCalculator(tudat::basic_astrodynamics::IAUConventions, boost::shared_ptr<tudat::interpolators::OneDimensionalInterpolator<double, Eigen::Matrix<double, 2, 1, 0, 2, 1> > >)", referenced from:
      boost::detail::sp_if_not_array<tudat::earth_orientation::PrecessionNutationCalculator>::type boost::make_shared<tudat::earth_orientation::PrecessionNutationCalculator, tudat::basic_astrodynamics::IAUConventions, boost::shared_ptr<tudat::interpolators::LinearInterpolator<double, Eigen::Matrix<double, 2, 1, 0, 2, 1> > >&>(tudat::basic_astrodynamics::IAUConventions&&, boost::shared_ptr<tudat::interpolators::LinearInterpolator<double, Eigen::Matrix<double, 2, 1, 0, 2, 1> > >&&&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::CurrentTimes<tudat::Time>& tudat::earth_orientation::TerrestrialTimeScaleConverter::getCurrentTimeList<tudat::Time>()", referenced from:
      tudat::Time tudat::earth_orientation::TerrestrialTimeScaleConverter::getCurrentTime<tudat::Time>(tudat::basic_astrodynamics::TimeScales, tudat::basic_astrodynamics::TimeScales, tudat::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<tudat::Time>(tudat::basic_astrodynamics::TimeScales, tudat::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::calculateUniversalTimes<tudat::Time>() in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::CurrentTimes<double>& tudat::earth_orientation::TerrestrialTimeScaleConverter::getCurrentTimeList<double>()", referenced from:
      double tudat::earth_orientation::TerrestrialTimeScaleConverter::getCurrentTime<double>(tudat::basic_astrodynamics::TimeScales, tudat::basic_astrodynamics::TimeScales, double const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<double>(tudat::basic_astrodynamics::TimeScales, double const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::calculateUniversalTimes<double>() in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "void tudat::earth_orientation::TerrestrialTimeScaleConverter::setCurrentGroundStation<tudat::Time>(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)", referenced from:
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<tudat::Time>(tudat::basic_astrodynamics::TimeScales, tudat::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "void tudat::earth_orientation::TerrestrialTimeScaleConverter::setCurrentGroundStation<double>(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)", referenced from:
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<double>(tudat::basic_astrodynamics::TimeScales, double const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "Eigen::Matrix<double, 3, 1, 0, 3, 1>& tudat::earth_orientation::TerrestrialTimeScaleConverter::getPreviousGroundStationPosition<tudat::Time>()", referenced from:
      tudat::Time tudat::earth_orientation::TerrestrialTimeScaleConverter::getCurrentTime<tudat::Time>(tudat::basic_astrodynamics::TimeScales, tudat::basic_astrodynamics::TimeScales, tudat::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "Eigen::Matrix<double, 3, 1, 0, 3, 1>& tudat::earth_orientation::TerrestrialTimeScaleConverter::getPreviousGroundStationPosition<double>()", referenced from:
      double tudat::earth_orientation::TerrestrialTimeScaleConverter::getCurrentTime<double>(tudat::basic_astrodynamics::TimeScales, tudat::basic_astrodynamics::TimeScales, double const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::calculateRotationFromCirsToGcrs(double, double, double)", referenced from:
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      Eigen::Quaternion<double, 0> tudat::earth_orientation::calculateRotationFromItrsToGcrs<tudat::Time>(double, double, double, tudat::Time, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      Eigen::Matrix<double, 3, 3, 0, 3, 3> tudat::earth_orientation::calculateRotationRateFromItrsToGcrs<double>(double, double, double, double, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::calculateRotationFromItrsToTirs(double, double, double)", referenced from:
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      Eigen::Quaternion<double, 0> tudat::earth_orientation::calculateRotationFromItrsToGcrs<tudat::Time>(double, double, double, tudat::Time, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      Eigen::Matrix<double, 3, 3, 0, 3, 3> tudat::earth_orientation::calculateRotationRateFromItrsToGcrs<double>(double, double, double, double, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::calculateRotationFromTirsToCirs(double)", referenced from:
      tudat::ephemerides::GcrsToItrsRotationModel::getRotationToBaseFrame(double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      Eigen::Quaternion<double, 0> tudat::earth_orientation::calculateRotationFromItrsToGcrs<tudat::Time>(double, double, double, tudat::Time, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      Eigen::Matrix<double, 3, 3, 0, 3, 3> tudat::earth_orientation::calculateRotationRateFromItrsToGcrs<double>(double, double, double, double, double, double, double) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::ShortPeriodEarthOrientationCorrectionCalculator<double>::sumCorrectionTerms(Eigen::Matrix<double, 6, 1, 0, 6, 1> const&)", referenced from:
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<double>(tudat::basic_astrodynamics::TimeScales, double const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::calculateUniversalTimes<double>() in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::updateTimes<tudat::Time>(tudat::basic_astrodynamics::TimeScales, tudat::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      void tudat::earth_orientation::TerrestrialTimeScaleConverter::calculateUniversalTimes<tudat::Time>() in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::readAmplitudesAndFundamentalArgumentMultipliers(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> >, double)", referenced from:
      tudat::earth_orientation::ShortPeriodEarthOrientationCorrectionCalculator<Eigen::Matrix<double, 2, 1, 0, 2, 1> >::ShortPeriodEarthOrientationCorrectionCalculator(double, double, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, boost::function<Eigen::Matrix<double, 6, 1, 0, 6, 1> (double)>) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
      tudat::earth_orientation::ShortPeriodEarthOrientationCorrectionCalculator<double>::ShortPeriodEarthOrientationCorrectionCalculator(double, double, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, boost::function<Eigen::Matrix<double, 6, 1, 0, 6, 1> (double)>) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
  "tudat::earth_orientation::EOPReader::EOPReader(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&, tudat::basic_astrodynamics::IAUConventions)", referenced from:
      boost::detail::sp_if_not_array<tudat::earth_orientation::EOPReader>::type boost::make_shared<tudat::earth_orientation::EOPReader, 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> >, tudat::basic_astrodynamics::IAUConventions>(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> >&&, tudat::basic_astrodynamics::IAUConventions&&) in libtudat_simulation_setup.a(createRotationModel.cpp.o)
[ 93%] Building CXX object tudat/Tudat/JsonInterface/CMakeFiles/json_interface_library.dir/Environment/gravityField.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [/Users/aleix/Documents/tudatBundle/tudatExampleApplications/satellitePropagatorExamples/bin/applications/application_GalileoConstellationSimulator] Error 1
make[1]: *** [tudatExampleApplications/satellitePropagatorExamples/SatellitePropagatorExamples/CMakeFiles/application_GalileoConstellationSimulator.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
DominicDirkx commented 6 years ago

Thanks for reminding me, I ran into these a few days ago. I pushed some small updates to the tudatExampleApplications (development branch) that fix this.