Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jenkins Windows CI is not installing DART #87

Open
chapulina opened this issue Jul 23, 2020 · 29 comments
Open

Jenkins Windows CI is not installing DART #87

chapulina opened this issue Jul 23, 2020 · 29 comments
Labels
DART DART engine help wanted Extra attention is needed tests Broken or missing tests / testing infra Windows Windows support

Comments

@chapulina
Copy link
Contributor

Windows CI is currently skipping the dartsim component:

-- Could NOT find DART (missing: DART_DIR)
-- Looking for DART - not found

-- -------------------------------------------

-- BUILD WARNINGS
-- 	Cannot build component [dartsim] - Missing: DART (Components: collision-ode, utils, utils-urdf, CONFIG)
-- END BUILD WARNINGS

We should make sure DART and its Ignition Physics bindings are installable and runnable on Windows.

@chapulina chapulina added DART DART engine tests Broken or missing tests / testing infra labels Jul 23, 2020
@osrf-triage osrf-triage added this to Inbox in Core development Jul 23, 2020
@scpeters
Copy link
Member

I had been working on this for a while before, but dart wasn't building on windows at the time. I think it is in better shape now, but we also require several components, so we need to make sure those dependencies are available as well.

test build fails; I think our vcpkg state is out of date and the ode formula has a bitbucket hash? I believe @traversaro fixed this in microsoft/vcpkg#11029, but maybe something is out of date on our CI machines?

I'll try again without ODE...

@scpeters
Copy link
Member

@chapulina chapulina added the Windows Windows support label Jul 24, 2020
@scpeters
Copy link
Member

dart install location will be fixed by dartsim/dart#1478

now cmake is failing while finding dart dependencies:

@chapulina chapulina removed this from Inbox in Core development Jul 27, 2020
@scpeters
Copy link
Member

dart is now in vcpkg: dartsim/dart#1005

so that should simplify matters if it builds the components that we need

@scpeters scpeters added this to Inbox in Core development via automation Sep 18, 2020
@chapulina chapulina moved this from Inbox to To do in Core development Sep 21, 2020
@scpeters
Copy link
Member

scpeters commented Oct 5, 2020

latest test with dartsim from vcpkg: Build Status https://build.osrfoundation.org/job/ign_physics-ign-2-win/58/

@scpeters
Copy link
Member

scpeters commented Oct 5, 2020

latest test with dartsim from vcpkg: Build Status https://build.osrfoundation.org/job/ign_physics-ign-2-win/58/

Error: Cannot find definition for package `dartsim`.

@j-rivero are the vcpkg definitions out of date on our CI machines? I was hoping to try the dartsim package

@j-rivero
Copy link
Contributor

j-rivero commented Oct 5, 2020

@j-rivero are the vcpkg definitions out of date on our CI machines? I was hoping to try the dartsim package

Yep, we are working with a "frozen" (we are not running git pull on the repo) snapshot of the vcpkg formulas. That is somehow good for stability although brings these kind of updated problems. My recommendation would be try to update vcpkg in a system out of the buildfarm (or take a node out of CI), git pull to the latest version and check to build the whole ignition suite.

@scpeters
Copy link
Member

scpeters commented Oct 5, 2020

@j-rivero are the vcpkg definitions out of date on our CI machines? I was hoping to try the dartsim package

Yep, we are working with a "frozen" (we are not running git pull on the repo) snapshot of the vcpkg formulas. That is somehow good for stability although brings these kind of updated problems. My recommendation would be try to update vcpkg in a system out of the buildfarm (or take a node out of CI), git pull to the latest version and check to build the whole ignition suite.

sounds good; I will work on this with @JShep1 and @chapulina

@scpeters
Copy link
Member

scpeters commented Oct 7, 2020

I just got my windows VM running again and installed dartsim with vcpkg, and it's closer, but ign-physics still fails to find DART's collision-ode component:

-- Could NOT find DART (missing: collision-ode) (Required is at least version "6.9")

more verbose log at https://gist.github.com/scpeters/d7a66c27f6423c9c8d13156f270d7eab

I'll try disabling the ode component for now and see if I can get farther

@scpeters
Copy link
Member

scpeters commented Oct 7, 2020

I've temporarily substituted the collision-bullet component for collision-ode and have started making some changes in a test branch:

it now has Assimp and FCL linking errors (full console output in gist)

CustomMeshShape.obj : error LNK2001: unresolved external symbol "public: __cdecl aiNode::aiNode(void)" (??0aiNode@@QEAA@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
EntityManagementFeatures.obj : error LNK2001: unresolved external symbol "public: static class std::shared_ptr<class dart::collision::OdeCollisionDetector> __cdecl dart::collision::OdeCollisionDetector::create(void)" (?create@OdeCollisionDetector@collision@dart@@SA?AV?$shared_ptr@VOdeCollisionDetector@collision@dart@@@std@@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol "public: __cdecl aiNode::~aiNode(void)" (??1aiNode@@QEAA@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiImportFileExWithProperties [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiApplyPostProcessing [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiReleaseImport [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiCreatePropertyStore [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiReleasePropertyStore [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiSetImportPropertyInteger [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(AssimpInputResourceAdaptor.obj) : error LNK2001: unresolved external symbol "public: static void * __cdecl Assimp::Intern::AllocateFromAssimpHeap::operator new(unsigned __int64)" (??2AllocateFromAssimpHeap@Intern@Assimp@@SAPEAX_K@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(AssimpInputResourceAdaptor.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl Assimp::Intern::AllocateFromAssimpHeap::operator delete(void *)" (??3AllocateFromAssimpHeap@Intern@Assimp@@SAXPEAX@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(AssimpInputResourceAdaptor.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl Assimp::IOSystem::ComparePaths(char const *,char const *)const " (?ComparePaths@IOSystem@Assimp@@UEBA_NPEBD0@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "public: __cdecl fcl::Triangle::Triangle(void)" (??0Triangle@fcl@@QEAA@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "public: void __cdecl fcl::Triangle::set(unsigned __int64,unsigned __int64,unsigned __int64)" (?set@Triangle@fcl@@QEAAX_K00@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "public: unsigned __int64 __cdecl fcl::Triangle::operator[](int)const " (??ATriangle@fcl@@QEBA_KH@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionObject.obj) : error LNK2001: unresolved external symbol "public: unsigned __int64 __cdecl fcl::Triangle::operator[](int)const " (??ATriangle@fcl@@QEBA_KH@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "void __cdecl fcl::eigen_old<double>(class Eigen::Matrix<double,3,3,0,3,3> const &,class Eigen::Matrix<double,3,1,0,3,1> &,class Eigen::Matrix<double,3,3,0,3,3> &)" (??$eigen_old@N@fcl@@YAXAEBV?$Matrix@N$02$02$0A@$02$02@Eigen@@AEAV?$Matrix@N$02$00$0A@$02$00@2@AEAV12@@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]

@scpeters scpeters moved this from To do to In progress in Core development Oct 7, 2020
@scpeters scpeters moved this from In progress to To do in Core development Oct 9, 2020
@scpeters
Copy link
Member

scpeters commented Oct 9, 2020

I've temporarily substituted the collision-bullet component for collision-ode and have started making some changes in a test branch:

it now has Assimp and FCL linking errors (full console output in gist)

CustomMeshShape.obj : error LNK2001: unresolved external symbol "public: __cdecl aiNode::aiNode(void)" (??0aiNode@@QEAA@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
EntityManagementFeatures.obj : error LNK2001: unresolved external symbol "public: static class std::shared_ptr<class dart::collision::OdeCollisionDetector> __cdecl dart::collision::OdeCollisionDetector::create(void)" (?create@OdeCollisionDetector@collision@dart@@SA?AV?$shared_ptr@VOdeCollisionDetector@collision@dart@@@std@@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol "public: __cdecl aiNode::~aiNode(void)" (??1aiNode@@QEAA@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiImportFileExWithProperties [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiApplyPostProcessing [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiReleaseImport [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiCreatePropertyStore [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiReleasePropertyStore [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(MeshShape.obj) : error LNK2001: unresolved external symbol aiSetImportPropertyInteger [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(AssimpInputResourceAdaptor.obj) : error LNK2001: unresolved external symbol "public: static void * __cdecl Assimp::Intern::AllocateFromAssimpHeap::operator new(unsigned __int64)" (??2AllocateFromAssimpHeap@Intern@Assimp@@SAPEAX_K@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(AssimpInputResourceAdaptor.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl Assimp::Intern::AllocateFromAssimpHeap::operator delete(void *)" (??3AllocateFromAssimpHeap@Intern@Assimp@@SAXPEAX@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(AssimpInputResourceAdaptor.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl Assimp::IOSystem::ComparePaths(char const *,char const *)const " (?ComparePaths@IOSystem@Assimp@@UEBA_NPEBD0@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "public: __cdecl fcl::Triangle::Triangle(void)" (??0Triangle@fcl@@QEAA@XZ) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "public: void __cdecl fcl::Triangle::set(unsigned __int64,unsigned __int64,unsigned __int64)" (?set@Triangle@fcl@@QEAAX_K00@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "public: unsigned __int64 __cdecl fcl::Triangle::operator[](int)const " (??ATriangle@fcl@@QEBA_KH@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionObject.obj) : error LNK2001: unresolved external symbol "public: unsigned __int64 __cdecl fcl::Triangle::operator[](int)const " (??ATriangle@fcl@@QEBA_KH@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]
dart.lib(FCLCollisionDetector.obj) : error LNK2001: unresolved external symbol "void __cdecl fcl::eigen_old<double>(class Eigen::Matrix<double,3,3,0,3,3> const &,class Eigen::Matrix<double,3,1,0,3,1> &,class Eigen::Matrix<double,3,3,0,3,3> &)" (??$eigen_old@N@fcl@@YAXAEBV?$Matrix@N$02$02$0A@$02$02@Eigen@@AEAV?$Matrix@N$02$00$0A@$02$00@2@AEAV12@@Z) [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]

@traversaro have you seen these linking errors before?

@traversaro
Copy link
Contributor

@traversaro have you seen these linking errors before?

I did not, but it seems that being dart a static library on Windows (see dartsim/dart#1501), it is necessary to explicitly link all the shared libraries on which it depends (in theory CMake should handle this), while from the errors it seems that fcl and assimp are not properly linked. For debugging, it would be helpful to have the full linker invocation line to check if fcl and assimp are actually linked.

@traversaro
Copy link
Contributor

By the way, the best way for me to catch this problems has always to add vcpkg ports for ignition libraries, to ensure that even if there are regression at the vcpkg level they are catched fast by vcpkg CI and dev themselves. Unfortunately in this case the ign-physics port (that should be relatively simple) has been blocked by the availability of the ignition-common port (see microsoft/vcpkg#11273). Unfortunately the ignition-common port was quite unlucky, as at some point in the vcpkg CI they installed pkg-config as well, but without making sure before that all the ports installed valid .pc files. For this reason, the ignition-common ports has been waiting for a long time for the .pc files of its dependency to be fixed. In theory it is possible to modify ignition-common and ignition-cmake to optionally avoid to use the .pc files, but to be honest I have never invested time in such a complicated workaround that would not be useful in the long term.

@traversaro
Copy link
Contributor

@traversaro have you seen these linking errors before?

I think I noticed something related: DART on MSVC hardcodes the library names of fcl and assimp (https://github.com/dartsim/dart/blob/0be8c3de481f85e440579ab1c60a8242a0d936c1/cmake/Findfcl.cmake#L31 and https://github.com/dartsim/dart/blob/e18046107679ff71a0da75dbbf2982b5650ff490/cmake/Findassimp.cmake#L29) instead of using the imported targets, so this could explain the linking errors. Unfortunately testing Dart on Windows is quite complicated due to the impossibility of compiling DART as a shared library (see dartsim/dart#1501), so even just compiling the test means that you get a 1 Gb executable for each test.

@traversaro
Copy link
Contributor

Unfortunately testing Dart on Windows is quite complicated due to the impossibility of compiling DART as a shared library (see dartsim/dart#1501), so even just compiling the test means that you get a 1 Gb executable for each test.

Actually the tests on Windows were disabled in dartsim/dart#1286 .

@scpeters
Copy link
Member

@traversaro have you seen these linking errors before?

I did not, but it seems that being dart a static library on Windows (see dartsim/dart#1501), it is necessary to explicitly link all the shared libraries on which it depends (in theory CMake should handle this), while from the errors it seems that fcl and assimp are not properly linked. For debugging, it would be helpful to have the full linker invocation line to check if fcl and assimp are actually linked.

it took me a minute to figure out how to expose the linker command, but setting an environment variable VERBOSE=1 did the trick. Yeah, it looks like fcl and assimp are not listed at all in the link command (with some massaged whitespace for ease of reading):

Link:
  C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64\link.exe
  /ERRORREPORT:QUEUE
  /OUT:"C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\bin\Release\ignition-physics3-dartsim-plugin.dll"
  /INCREMENTAL:NO
  /NOLOGO
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\dart-collision-bullet.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\BulletDynamics.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\BulletCollision.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\LinearMath.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\BulletSoftBody.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\dart-utils-urdf.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\dart-utils.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\urdfdom_sensor.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\urdfdom_model_state.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\urdfdom_model.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\urdfdom_world.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\console_bridge.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\dart.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\dart-external-odelcpsolver.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\ccd.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\boost_system-vc140-mt.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\boost_filesystem-vc140-mt.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\octomap.lib"
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\octomath.lib"
  C:\Users\scpet\Desktop\ws\ignition\install\sdformat10\lib\sdformat10.lib
  "C:\Users\scpet\Desktop\vcpkg\installed\x64-windows\lib\tinyxml2.lib"
  "..\lib\Release\ignition-physics3.lib"
  "C:\Users\scpet\Desktop\ws\ignition\install\ignition-plugin1\lib\ignition-plugin1.lib"
  "C:\Users\scpet\Desktop\ws\ignition\install\ignition-common3\lib\ignition-common3-graphics.lib"
  "C:\Users\scpet\Desktop\ws\ignition\install\ignition-math6\lib\ignition-math6.lib"
  "C:\Users\scpet\Desktop\ws\ignition\install\ignition-common3\lib\ignition-common3-profiler.lib"
  "C:\Users\scpet\Desktop\ws\ignition\install\ignition-common3\lib\ignition-common3.lib"
  kernel32.lib
  user32.lib
  gdi32.lib
  winspool.lib
  shell32.lib
  ole32.lib
  oleaut32.lib
  uuid.lib
  comdlg32.lib
  advapi32.lib
  /MANIFEST
  /MANIFESTUAC:"level='asInvoker' uiAccess='false'"
  /manifest:embed
  /PDB:"C:/Users/scpet/Desktop/ws/ignition/build/ignition-physics3/bin/Release/ignition-physics3-dartsim-plugin.pdb"
  /SUBSYSTEM:CONSOLE
  /TLBID:1
  /DYNAMICBASE
  /NXCOMPAT
  /IMPLIB:"C:/Users/scpet/Desktop/ws/ignition/build/ignition-physics3/lib/Release/ignition-physics3-dartsim-plugin.lib"
  /MACHINE:X64
  /machine:x64
  /DLL "ignition-physics4-dartsim-plugin.dir\Release\CustomFeatures.obj"

@traversaro
Copy link
Contributor

Unfortunately testing Dart on Windows is quite complicated due to the impossibility of compiling DART as a shared library (see dartsim/dart#1501), so even just compiling the test means that you get a 1 Gb executable for each test.

Actually the tests on Windows were disabled in dartsim/dart#1286 .

Indeed, I enabled the DART tests and I have the same linking error on DART tests.

@scpeters
Copy link
Member

dartsim/dart#1476 seems related, but they mention a different set of missing symbols

@scpeters
Copy link
Member

nice work, dartsim/dart#1510 fixes the FCL linking errors and most of the Assimp linking errors; I now just see the following error:

LINK : fatal error LNK1181: cannot open input file 'utf8cpp.lib' [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]

I believe the utf8cpp linkage is coming from assimp: https://github.com/microsoft/vcpkg/blob/cebe05184119cfabcc8f5c0e71c8673c22a1487b/ports/assimp/irrlicht.patch#L10-L11

@scpeters
Copy link
Member

nice work, dartsim/dart#1510 fixes the FCL linking errors and most of the Assimp linking errors; I now just see the following error:

LINK : fatal error LNK1181: cannot open input file 'utf8cpp.lib' [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]

I believe the utf8cpp linkage is coming from assimp: https://github.com/microsoft/vcpkg/blob/cebe05184119cfabcc8f5c0e71c8673c22a1487b/ports/assimp/irrlicht.patch#L10-L11

full linker command at https://gist.github.com/scpeters/7f30e97696c95093752c9e7fc45f25cc

@traversaro
Copy link
Contributor

nice work, dartsim/dart#1510 fixes the FCL linking errors and most of the Assimp linking errors; I now just see the following error:

LINK : fatal error LNK1181: cannot open input file 'utf8cpp.lib' [C:\Users\scpet\Desktop\ws\ignition\build\ignition-physics3\dartsim\ignition-physics3-dartsim-plugin.vcxproj]

I believe the utf8cpp linkage is coming from assimp: https://github.com/microsoft/vcpkg/blob/cebe05184119cfabcc8f5c0e71c8673c22a1487b/ports/assimp/irrlicht.patch#L10-L11

Cool, this comes from a PR merged 20 hours ago ( microsoft/vcpkg#13521 ), really a fresh regression. Let's open a vcpkg issue on that: microsoft/vcpkg#14045 .

@scpeters
Copy link
Member

wow, thanks for deciphering that and submitting the issue; I'll watch it and try again if it gets resolved

@scpeters
Copy link
Member

ok, the utf8cpp linkage error is fixed by microsoft/vcpkg#14061; I'll see how far I can get now...

@scpeters
Copy link
Member

I had some trouble linking with ODE, so I switched to the collision-bullet component for testing and got tests compiled and running, though any tests involving the dartsim-plugin fail with:

unknown file: error: C++ exception with description "Access violation - no RTTI data!" thrown in the test body.

I then tried to fix the ODE linking issue and am preparing to make a pull request for that.

@traversaro
Copy link
Contributor

A possible debug direction may be to enable the example and the testsuite compilation and execution of DART itself, this may highlight if there are some problems in DART itself.

@scpeters
Copy link
Member

A possible debug direction may be to enable the example and the testsuite compilation and execution of DART itself, this may highlight if there are some problems in DART itself.

yes, I've reproduced the failures in DART itself: dartsim/dart#1522

@scpeters
Copy link
Member

it looks like dartsim/dart#1528 may eliminate our need for the /permissive- workaround

@donnyward
Copy link

@scpeters it is only a partial fix. There are other errors that occur without /permissive- that I haven't been able to sort out yet.

@chapulina
Copy link
Contributor Author

Removing this from TODO so we can focus on the rest of the stack. Until DART is fixed, ign-physics is supported on Windows without the dartsim component. We welcome contributions from the community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DART DART engine help wanted Extra attention is needed tests Broken or missing tests / testing infra Windows Windows support
Projects
None yet
Development

No branches or pull requests

6 participants