Compatibility issues between MacOS arm-64 and x86_64 versions

New project for OpenCap, which is a new software package to estimate 3D human movement dynamics from smartphone videos. OpenCap strongly relies on OpenSim.
POST REPLY
User avatar
Carlo von Diecken
Posts: 6
Joined: Mon Dec 05, 2022 7:24 am

Compatibility issues between MacOS arm-64 and x86_64 versions

Post by Carlo von Diecken » Tue Apr 30, 2024 8:03 am

Hi,

I am having trouble running the example_kinetics.py file on my M1 Macbook Air. I followed all install requirements as listed on Github but get the following error when running the file:

"FileNotFoundError: [Errno 2] No such file or directory: '/Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/build-ExpressionGraphF/foo.py'."

I believe that this may be due to compatibility issues between the SimTK libraries built for Intel Mac machines (macOS-x86_64) and my Apple silicon Macbook (macOS-arm64), as there are several warnings that the .dylib files are ignored for this reason. E.g.:

"ld: warning: ignoring file /Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/opensimAD-install/macOS/lib/libosimSimulation_recorder.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64"

Is there any way I can fix this issue?

Best regards Carlo

Code: Select all

20 warnings generated.
[100%] Linking CXX executable F
ld: warning: ignoring file /Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/opensimAD-install/macOS/lib/libSimTKsimbody_recorder.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64ld: warning: ignoring file /Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/opensimAD-install/macOS/lib/libosimCommon_recorder.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
ld: warning: ignoring file /Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/opensimAD-install/macOS/lib/libSimTKcommon_recorder.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

ld: warning: ignoring file /Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/opensimAD-install/macOS/lib/libSimTKmath_recorder.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
ld: warning: ignoring file /Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/opensimAD-install/macOS/lib/libosimSimulation_recorder.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture arm64:
  "SimTK::MatrixHelper<Recorder>::copyAssign(SimTK::MatrixHelper<Recorder> const&)", referenced from:
      SimTK::MatrixBase<Recorder>::copyAssign(SimTK::MatrixBase<Recorder> const&) in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::fillWithScalar(Recorder const&)", referenced from:
      SimTK::MatrixBase<Recorder>::setToZero() in F.cpp.o
      SimTK::MatrixBase<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>>::setToZero() in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::deleteRepIfOwner()", referenced from:
      SimTK::MatrixHelper<Recorder>::~MatrixHelper() in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::resize(int, int)", referenced from:
      SimTK::MatrixBase<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>>::resize(int, int) in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::updElt(int)", referenced from:
      SimTK::VectorBase<Recorder>::operator[](int) in F.cpp.o
      SimTK::VectorBase<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>>::operator[](int) in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::fillWith(Recorder const*)", referenced from:
      SimTK::MatrixBase<Recorder>::MatrixBase(SimTK::MatrixCommitment const&, int, int, Recorder const&) in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::MatrixHelper(SimTK::MatrixCommitment const&, SimTK::MatrixHelper<Recorder> const&, SimTK::MatrixHelper<Recorder>::DeepCopy const&)", referenced from:
      SimTK::MatrixBase<Recorder>::MatrixBase(SimTK::MatrixBase<Recorder> const&) in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::MatrixHelper(int, int, SimTK::MatrixCommitment const&, int, int)", referenced from:
      SimTK::MatrixBase<Recorder>::MatrixBase(SimTK::MatrixCommitment const&, int, int) in F.cpp.o
      SimTK::MatrixBase<Recorder>::MatrixBase(SimTK::MatrixCommitment const&, int, int, Recorder const&) in F.cpp.o
      SimTK::MatrixBase<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>>::MatrixBase(SimTK::MatrixCommitment const&, int, int) in F.cpp.o
  "SimTK::MatrixOutline::calcMask(SimTK::MatrixOutline::Outline)", referenced from:
      SimTK::MatrixOutline::mask() const in F.cpp.o
  "SimTK::MatrixCondition::calcMask(SimTK::MatrixCondition::Diagonal)", referenced from:
      SimTK::MatrixCondition::mask() const in F.cpp.o
  "SimTK::MatrixCondition::calcMask(SimTK::MatrixCondition::Condition)", referenced from:
      SimTK::MatrixCondition::mask() const in F.cpp.o
  "SimTK::State::State(SimTK::State const&)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::CustomJoint::CustomJoint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::SpatialTransform&)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::PropertyTable::adoptProperty(OpenSim::AbstractProperty*)", referenced from:
      OpenSim::PropertyIndex OpenSim::Object::addProperty<SimTK::Vector_<Recorder>>(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&, SimTK::Vector_<Recorder> const&) in F.cpp.o
  "OpenSim::PropertyTable::updAbstractPropertyByIndex(int)", referenced from:
      OpenSim::Property<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>& OpenSim::PropertyTable::updProperty<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(int) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>& OpenSim::PropertyTable::updProperty<SimTK::Vec<3, Recorder, 1>>(int) in F.cpp.o
      OpenSim::Property<SimTK::Vector_<Recorder>>& OpenSim::PropertyTable::updProperty<SimTK::Vector_<Recorder>>(int) in F.cpp.o
      OpenSim::Property<Recorder>& OpenSim::PropertyTable::updProperty<Recorder>(int) in F.cpp.o
  "OpenSim::TransformAxis::setFunction(OpenSim::Function*)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::LinearFunction::LinearFunction(Recorder, Recorder)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::AbstractProperty::clear()", referenced from:
      void OpenSim::Property<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::setValue<OpenSim::Array>(OpenSim::Array<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) in F.cpp.o
  "OpenSim::AbstractProperty::AbstractProperty()", referenced from:
      OpenSim::Property<SimTK::Vector_<Recorder>>::Property() in F.cpp.o
  "OpenSim::SpatialTransform::updTransformAxis(int)", referenced from:
      OpenSim::SpatialTransform::operator[](int) in F.cpp.o
  "OpenSim::SpatialTransform::SpatialTransform()", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::MultiplierFunction::MultiplierFunction(OpenSim::Function*, Recorder)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::SmoothSphereHalfSpaceForce::SmoothSphereHalfSpaceForce(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, OpenSim::PhysicalFrame const&)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::getIndicesOpenSimInSimbody(OpenSim::Model const&)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::getIndicesSimbodyInOpenSim(OpenSim::Model const&)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Body::Body(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, Recorder, SimTK::Vec<3, Recorder, 1> const&, SimTK::Inertia_<Recorder> const&)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Joint::constructCoordinate(OpenSim::Coordinate::MotionType, unsigned int)", referenced from:
      OpenSim::PinJoint::PinJoint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
  "OpenSim::Joint::Joint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&)", referenced from:
      OpenSim::PinJoint::PinJoint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      OpenSim::WeldJoint::WeldJoint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
  "OpenSim::Joint::~Joint()", referenced from:
      OpenSim::PinJoint::PinJoint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
  "OpenSim::Model::buildSystem()", referenced from:
      OpenSim::Model::initSystem() in F.cpp.o
  "OpenSim::Model::initializeState()", referenced from:
      OpenSim::Model::initSystem() in F.cpp.o
  "OpenSim::Model::addBody(OpenSim::Body*)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Model::addJoint(OpenSim::Joint*)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Model::Model()", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Object::~Object()", referenced from:
      OpenSim::SpatialTransform::~SpatialTransform() in F.cpp.o
  "OpenSim::Constant::Constant(Recorder)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Function::Function(OpenSim::Function const&)", referenced from:
      OpenSim::PolynomialFunction::PolynomialFunction(OpenSim::PolynomialFunction const&) in F.cpp.o
  "OpenSim::Function::Function()", referenced from:
      OpenSim::PolynomialFunction::PolynomialFunction(SimTK::Vector_<Recorder>) in F.cpp.o
  "OpenSim::Function::~Function()", referenced from:
      OpenSim::PolynomialFunction::PolynomialFunction(SimTK::Vector_<Recorder>) in F.cpp.o
      OpenSim::PolynomialFunction::~PolynomialFunction() in F.cpp.o
  "OpenSim::Function::operator=(OpenSim::Function const&)", referenced from:
      OpenSim::PolynomialFunction::operator=(OpenSim::PolynomialFunction const&) in F.cpp.o
  "OpenSim::Property<SimTK::Vector_<Recorder>>::TypeHelper::isEqual(SimTK::Vector_<Recorder> const&, SimTK::Vector_<Recorder> const&)", referenced from:
      OpenSim::SimpleProperty<SimTK::Vector_<Recorder>>::isEqualTo(OpenSim::AbstractProperty const&) const in F.cpp.o
  "OpenSim::Component::addComponent(OpenSim::Component*)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Exception::addMessage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)", referenced from:
      OpenSim::InvalidArgument::InvalidArgument(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, 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 F.cpp.o
      OpenSim::SocketNotFound::SocketNotFound(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in F.cpp.o
  "OpenSim::Exception::Exception(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&, int)", referenced from:
      void OpenSim::Property<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::setValue<OpenSim::Array>(OpenSim::Array<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) in F.cpp.o
      OpenSim::Property<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::updAs(OpenSim::AbstractProperty&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::setValue(SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::updAs(OpenSim::AbstractProperty&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::setValue(int, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::appendValue(SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      OpenSim::PolynomialFunction::assign(OpenSim::Object&) in F.cpp.o
      ...
  "OpenSim::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)", referenced from:
      OpenSim::InvalidArgument::InvalidArgument(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, 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 F.cpp.o
  "OpenSim::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::Object const&)", referenced from:
      OpenSim::SocketNotFound::SocketNotFound(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in F.cpp.o
  "Recorder::stop_recording()", referenced from:
      _main in F.cpp.o
  "Recorder::Recorder(Recorder const&)", referenced from:
      Recorder value<Recorder>(Recorder const&) in F.cpp.o
      SimTK::Function_<Recorder>::Polynomial::calcValue(SimTK::Vector_<Recorder> const&) const in F.cpp.o
      SimTK::Function_<Recorder>::Polynomial::calcDerivative(SimTK::Array_<int, unsigned int> const&, SimTK::Vector_<Recorder> const&) const in F.cpp.o
      void std::__1::allocator<Recorder>::construct[abi:v15006]<Recorder, Recorder const&>(Recorder*, Recorder const&) in F.cpp.o
  "Recorder::Recorder(double)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
      SimTK::MatrixBase<Recorder>::setToZero() in F.cpp.o
      SimTK::MatrixBase<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>>::setToZero() in F.cpp.o
      Recorder::operator=(double) in F.cpp.o
      operator*(double, Recorder const&) in F.cpp.o
      SimTK::NTraits<Recorder>::getNaN() in F.cpp.o
      OpenSim::PolynomialFunction::constructProperties() in F.cpp.o
      ...
  "Recorder::Recorder()", referenced from:
      _main in F.cpp.o
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
      SimTK::Vec<3, Recorder, 1>::Vec(Recorder const&, Recorder const&, Recorder const&) in F.cpp.o
      SimTK::SymMat<3, Recorder, 1>::SymMat() in F.cpp.o
      SimTK::SymMat<3, Recorder, 1>::SymMat(Recorder const&, Recorder const&, Recorder const&, Recorder const&, Recorder const&, Recorder const&) in F.cpp.o
      SimTK::Vec<3, Recorder, 1>::Vec(int) in F.cpp.o
      SimTK::Vec<3, Recorder, 1>::Vec(Recorder const&) in F.cpp.o
      ...
  "Recorder::~Recorder()", referenced from:
      _main in F.cpp.o
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
      SimTK::MatrixBase<Recorder>::setToZero() in F.cpp.o
      SimTK::MatrixBase<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>>::setToZero() in F.cpp.o
      Recorder::operator=(double) in F.cpp.o
      operator*(double, Recorder const&) in F.cpp.o
      SimTK::Vec<3, Recorder, 1>::Vec(Recorder const&, Recorder const&, Recorder const&) in F.cpp.o
      ...
  "Recorder::operator=(Recorder const&)", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
      Recorder::operator=(double) in F.cpp.o
      SimTK::Vec<3, Recorder, 1>::Vec(Recorder const&, Recorder const&, Recorder const&) in F.cpp.o
      SimTK::Vec<6, Recorder, 1>& SimTK::Vec<6, Recorder, 1>::scalarEq<Recorder>(Recorder const&) in F.cpp.o
      SimTK::SymMat<3, Recorder, 1>::SymMat(Recorder const&, Recorder const&, Recorder const&, Recorder const&, Recorder const&, Recorder const&) in F.cpp.o
      void SimTK::Impl::copy<6, Recorder, 1, Recorder, 1>(SimTK::Vec<6, Recorder, 1>&, SimTK::Vec<6, Recorder, 1> const&) in F.cpp.o
      void SimTK::Impl::copy<5, Recorder, 1, Recorder, 1>(SimTK::Vec<5, Recorder, 1>&, SimTK::Vec<5, Recorder, 1> const&) in F.cpp.o
      ...
  "Recorder::operator<<=(double)", referenced from:
      _main in F.cpp.o
  "Recorder::operator>>=(double&)", referenced from:
      _main in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::getCharacterCommitment() const", referenced from:
      SimTK::MatrixBase<Recorder>::MatrixBase(SimTK::MatrixBase<Recorder> const&) in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::ncol() const", referenced from:
      SimTK::MatrixBase<Recorder>::ncol() const in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::nelt() const", referenced from:
      SimTK::MatrixBase<Recorder>::nelt() const in F.cpp.o
  "SimTK::MatrixHelper<Recorder>::getElt(int) const", referenced from:
      SimTK::VectorBase<Recorder>::operator[](int) const in F.cpp.o
  "SimTK::MobilizedBody::getBodyTransform(SimTK::State const&) const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "SimTK::MatrixStructure::mask() const", referenced from:
      SimTK::MatrixCommitment::MatrixCommitment(SimTK::MatrixStructure const&, SimTK::MatrixStorage const&, SimTK::MatrixOutline const&, SimTK::MatrixCondition const&) in F.cpp.o
  "SimTK::MultibodySystem::getMatterSubsystem() const", referenced from:
      OpenSim::Model::getMatterSubsystem() const in F.cpp.o
  "SimTK::SimbodyMatterSubsystem::addInStationForce(SimTK::State const&, SimTK::MobilizedBodyIndex, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vector_<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>>&) const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "SimTK::SimbodyMatterSubsystem::calcResidualForceIgnoringConstraints(SimTK::State const&, SimTK::Vector_<Recorder> const&, SimTK::Vector_<SimTK::Vec<2, SimTK::Vec<3, Recorder, 1>, 1>> const&, SimTK::Vector_<Recorder> const&, SimTK::Vector_<Recorder>&) const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::PhysicalFrame::getMobilizedBody() const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::PropertyTable::getAbstractPropertyByIndex(int) const", referenced from:
      OpenSim::Property<SimTK::Vector_<Recorder>> const& OpenSim::PropertyTable::getProperty<SimTK::Vector_<Recorder>>(int) const in F.cpp.o
      OpenSim::Property<OpenSim::BodySet> const& OpenSim::PropertyTable::getProperty<OpenSim::BodySet>(int) const in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>> const& OpenSim::PropertyTable::getProperty<SimTK::Vec<3, Recorder, 1>>(int) const in F.cpp.o
      OpenSim::Property<Recorder> const& OpenSim::PropertyTable::getProperty<Recorder>(int) const in F.cpp.o
  "OpenSim::Frame::getTransformInGround(SimTK::State const&) const", referenced from:
      OpenSim::Frame::getPositionInGround(SimTK::State const&) const in F.cpp.o
  "OpenSim::Frame::findStationLocationInGround(SimTK::State const&, SimTK::Vec<3, Recorder, 1> const&) const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Frame::findStationLocationInAnotherFrame(SimTK::State const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::Frame const&) const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Model::realizeVelocity(SimTK::State const&) const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Model::getGround() const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Object::getName() const", referenced from:
      OpenSim::PolynomialFunction::assign(OpenSim::Object&) in F.cpp.o
      OpenSim::ArrayPtrs<OpenSim::Body>::getIndex(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int) const in F.cpp.o
  "OpenSim::Object::operator==(OpenSim::Object const&) const", referenced from:
      vtable for OpenSim::PolynomialFunction in F.cpp.o
  "OpenSim::Object::operator<(OpenSim::Object const&) const", referenced from:
      vtable for OpenSim::PolynomialFunction in F.cpp.o
  "OpenSim::Function::calcDerivative(std::__1::vector<int, std::__1::allocator<int>> const&, SimTK::Vector_<Recorder> const&) const", referenced from:
      vtable for OpenSim::PolynomialFunction in F.cpp.o
  "OpenSim::Function::getArgumentSize() const", referenced from:
      vtable for OpenSim::PolynomialFunction in F.cpp.o
  "OpenSim::Function::getMaxDerivativeOrder() const", referenced from:
      vtable for OpenSim::PolynomialFunction in F.cpp.o
  "OpenSim::Function::calcValue(SimTK::Vector_<Recorder> const&) const", referenced from:
      vtable for OpenSim::PolynomialFunction in F.cpp.o
  "OpenSim::Component::setStateVariableValues(SimTK::State&, SimTK::Vector_<Recorder> const&) const", referenced from:
      int F_generic<Recorder>(Recorder const**, Recorder**) in F.cpp.o
  "OpenSim::Exception::what() const", referenced from:
      vtable for OpenSim::InvalidArgument in F.cpp.o
      vtable for OpenSim::SocketNotFound in F.cpp.o
  "OpenSim::Exception::print(std::__1::basic_ostream<char, std::__1::char_traits<char>>&) const", referenced from:
      vtable for OpenSim::InvalidArgument in F.cpp.o
      vtable for OpenSim::SocketNotFound in F.cpp.o
  "Recorder::getValue() const", referenced from:
      double value<double>(Recorder const&) in F.cpp.o
  "typeinfo for OpenSim::Object", referenced from:
      OpenSim::PolynomialFunction::safeDownCast(OpenSim::Object*) in F.cpp.o
  "typeinfo for OpenSim::BodySet", referenced from:
      SimTK::NiceTypeName<OpenSim::BodySet>::name() in F.cpp.o
  "typeinfo for OpenSim::Function", referenced from:
      typeinfo for OpenSim::PolynomialFunction in F.cpp.o
  "typeinfo for OpenSim::Exception", referenced from:
      void OpenSim::Property<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::setValue<OpenSim::Array>(OpenSim::Array<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) in F.cpp.o
      OpenSim::Property<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::updAs(OpenSim::AbstractProperty&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::setValue(SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::updAs(OpenSim::AbstractProperty&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::setValue(int, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      OpenSim::Property<SimTK::Vec<3, Recorder, 1>>::appendValue(SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      OpenSim::PolynomialFunction::assign(OpenSim::Object&) in F.cpp.o
      ...
  "vtable for OpenSim::PinJoint", referenced from:
      OpenSim::PinJoint::PinJoint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for OpenSim::Exception", referenced from:
      OpenSim::Exception::~Exception() in F.cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for OpenSim::WeldJoint", referenced from:
      OpenSim::WeldJoint::WeldJoint(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, OpenSim::PhysicalFrame const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, Recorder const&)", referenced from:
      decltype(static_cast<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(fp << fp0)) SimTK::stringStreamInsertHelper<Recorder>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, Recorder const&, bool) in F.cpp.o
  "operator-(Recorder const&, Recorder const&)", referenced from:
      void SimTK::Impl::conformingSubtract<3, Recorder, 1, Recorder, 1>(SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, SimTK::CNT<Recorder>::Result<Recorder>::Sub, 1>&) in F.cpp.o
      void SimTK::Impl::conformingSubtract<2, Recorder, 1, Recorder, 1>(SimTK::Vec<2, Recorder, 1> const&, SimTK::Vec<2, Recorder, 1> const&, SimTK::Vec<2, SimTK::CNT<Recorder>::Result<Recorder>::Sub, 1>&) in F.cpp.o
      void SimTK::Impl::conformingSubtract<Recorder, 1, Recorder, 1>(SimTK::Vec<1, Recorder, 1> const&, SimTK::Vec<1, Recorder, 1> const&, SimTK::Vec<1, SimTK::CNT<Recorder>::Result<Recorder>::Sub, 1>&) in F.cpp.o
      SimTK::Vec<3, SimTK::CNT<Recorder>::Result<Recorder>::Mul, 1> SimTK::cross<Recorder, 1, Recorder, 1>(SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
  "operator*(Recorder const&, Recorder const&)", referenced from:
      operator*(double, Recorder const&) in F.cpp.o
      SimTK::Function_<Recorder>::Polynomial::calcValue(SimTK::Vector_<Recorder> const&) const in F.cpp.o
      SimTK::Function_<Recorder>::Polynomial::calcDerivative(SimTK::Array_<int, unsigned int> const&, SimTK::Vector_<Recorder> const&) const in F.cpp.o
      Recorder::operator*=(Recorder const&) in F.cpp.o
      SimTK::Vec<3, SimTK::NTraits<Recorder>::Result<Recorder>::Mul, 1> SimTK::Vec<3, Recorder, 1>::scalarMultiply<Recorder>(Recorder const&) const in F.cpp.o
      operator*(Recorder const&, double) in F.cpp.o
      SimTK::Vec<3, SimTK::CNT<Recorder>::Result<Recorder>::Mul, 1> SimTK::cross<Recorder, 1, Recorder, 1>(SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.o
      ...
  "operator+(Recorder const&, Recorder const&)", referenced from:
      SimTK::Function_<Recorder>::Polynomial::calcValue(SimTK::Vector_<Recorder> const&) const in F.cpp.o
      SimTK::Function_<Recorder>::Polynomial::calcDerivative(SimTK::Array_<int, unsigned int> const&, SimTK::Vector_<Recorder> const&) const in F.cpp.o
      Recorder::operator+=(Recorder const&) in F.cpp.o
      void SimTK::Impl::conformingAdd<3, Recorder, 1, Recorder, 1>(SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, Recorder, 1> const&, SimTK::Vec<3, SimTK::CNT<Recorder>::Result<Recorder>::Add, 1>&) in F.cpp.o
      void SimTK::Impl::conformingAdd<2, Recorder, 1, Recorder, 1>(SimTK::Vec<2, Recorder, 1> const&, SimTK::Vec<2, Recorder, 1> const&, SimTK::Vec<2, SimTK::CNT<Recorder>::Result<Recorder>::Add, 1>&) in F.cpp.o
      void SimTK::Impl::conformingAdd<Recorder, 1, Recorder, 1>(SimTK::Vec<1, Recorder, 1> const&, SimTK::Vec<1, Recorder, 1> const&, SimTK::Vec<1, SimTK::CNT<Recorder>::Result<Recorder>::Add, 1>&) in F.cpp.o
      SimTK::CNT<Recorder>::Result<Recorder>::Mul SimTK::operator*<3, Recorder, 3, Recorder, 1>(SimTK::Row<3, Recorder, 3> const&, SimTK::Vec<3, Recorder, 1> const&) in F.cpp.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]: *** [F] Error 1
make[1]: *** [CMakeFiles/F.dir/all] Error 2
make: *** [all] Error 2
Traceback (most recent call last):
  File "/Users/carlovondiecken/Documents/opencap-processing/example_kinetics.py", line 181, in <module>
    settings = processInputsOpenSimAD(baseDir, dataFolder, session_id, trial_name, 
  File "/Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/utilsOpenSimAD.py", line 2251, in processInputsOpenSimAD
    generateExternalFunction(baseDir, dataFolder, session_id,
  File "/Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/utilsOpenSimAD.py", line 1537, in generateExternalFunction
    buildExternalFunction(
  File "/Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/utilsOpenSimAD.py", line 1778, in buildExternalFunction
    shutil.copy2(path_external_filename_foo, CPP_DIR)
  File "/opt/anaconda3/envs/opencap-processing/lib/python3.10/shutil.py", line 434, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/opt/anaconda3/envs/opencap-processing/lib/python3.10/shutil.py", line 254, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/carlovondiecken/Documents/opencap-processing/UtilsDynamicSimulations/OpenSimAD/build-ExpressionGraphF/foo.py'

Tags:

User avatar
Antoine Falisse
Posts: 439
Joined: Wed Jan 07, 2015 2:21 am

Re: Compatibility issues between MacOS arm-64 and x86_64 versions

Post by Antoine Falisse » Tue Apr 30, 2024 11:01 am

Hi Carlo,

OpenSimAD has no support for arm64. Will try to work on that soon. It should work on other platforms.

Best,
Antoine

User avatar
Carlo von Diecken
Posts: 6
Joined: Mon Dec 05, 2022 7:24 am

Re: Compatibility issues between MacOS arm-64 and x86_64 versions

Post by Carlo von Diecken » Fri May 03, 2024 3:17 am

Hi Antoine,

thank you for quick response! Unfortunately, I do not have access to a different platform at the moment. Are there any pre-written scripts for running a dynamic simulation through OpenCap without the use of OpenSimAD? Any tips/pointers would be greatly appreciated!


Best,
Carlo

User avatar
Antoine Falisse
Posts: 439
Joined: Wed Jan 07, 2015 2:21 am

Re: Compatibility issues between MacOS arm-64 and x86_64 versions

Post by Antoine Falisse » Fri May 03, 2024 12:00 pm

Hey, example_kinetics.py uses OpenSimAD to run dynamic simulations using OpenCap data: https://github.com/stanfordnmbl/opencap ... inetics.py. Hope it helps, Antoine

User avatar
Matt Petrucci
Posts: 185
Joined: Fri Feb 24, 2012 11:49 am

Re: Compatibility issues between MacOS arm-64 and x86_64 versions

Post by Matt Petrucci » Tue May 07, 2024 11:40 am

Hi Carlo, you could also consider using Moco. There are example scripts here: https://github.com/stanfordnmbl/opencap ... /main/Moco

POST REPLY