Compilação do DeepMimicCore sob o aprendizado do DeepMimic no win10


Ainda siga as etapas na página inicial do github [1], e consulte [2], as etapas parecem relativamente simples, mas ainda existem muitos problemas no processo

Compilar

  • Escolha a opção x64
  • Adicionar arquivos de cabeçalho e configuração de link
  • Selecione Release_Swig para compilar

Eventualmente, um arquivo DeepMimicCore.py será gerado

Resolução de problemas

1. O Windows SDK está ausente

  • Informações detalhadas
	C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: 找不到 Windows SDK 版本10.0.17134.0。请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
  • Resolver

Acesse o site oficial para baixar a instalação correspondente do SDK

2.swig.exe não encontrado

  • Informações detalhadas
	1>------ 已启动生成: 项目: DeepMimicCore, 配置: Release_Swig x64 ------
	1>Performing Custom Build Tools
	1>PYTHON_INCLUDE:
	1>PYTHON_LIB:
	1>SWIG_DIR:
	1>'\swig.exe' 不是内部或外部命令,也不是可运行的程序
	1>或批处理文件。
	1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(209,5): error MSB6006: “cmd.exe”已退出,代码为 9009。
	1>已完成生成项目“DeepMimicCore.vcxproj”的操作 - 失败。
  • Resolver

Adicione SWIG_DIR sob a variável de ambiente, o caminho após descompactar o pacote compactado, que contém swig.exe

3. Erro próprio

  • Informações detalhadas
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\util\mathutil.h(5): fatal error C1083: 无法打开包括文件: “Eigen/Dense”: No such file or directory
	1>KinCharacter.cpp
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\util\mathutil.h(5): fatal error C1083: 无法打开包括文件: “Eigen/Dense”: No such file or directory
	1>KinTree.cpp
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\util\mathutil.h(5): fatal error C1083: 无法打开包括文件: “Eigen/Dense”: No such file or directory
	1>Motion.cpp
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\util\mathutil.h(5): fatal error C1083: 无法打开包括文件: “Eigen/Dense”: No such file or directory
	1>Shape.cpp
  • Resolver

Como estou executando o projeto de instalação, copio uma cópia para a unidade C, o caminho é C: \ Arquivos de Programas (x86) \ Eigen3 \ include \ eigen3. Mas o tutorial é sobre adicionar para incluir no arquivo de cabeçalho, adicionar o caminho anterior está ok

Arquivo de cabeçalho 4.glew não encontrado

  • Informações detalhadas
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\render\drawmesh.h(17): fatal error C1083: 无法打开包括文件: “GL/glew.h”: No such file or directory
	1>KinCharacter.cpp
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\render\drawmesh.h(17): fatal error C1083: 无法打开包括文件: “GL/glew.h”: No such file or directory
  • Resolver

Contém arquivos de cabeçalho glew

5. M_PI não foi encontrado

  • Informações detalhadas
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\render\renderstate.h(87): warning C4312: “类型强制转换”: 从“unsigned int”转换到更大的“GLvoid *”
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\render\camera.cpp(328): error C2065: “M_PI”: 未声明的标识符
	1>f:\study\engine\animation\deepmimic\deepmimic\deepmimiccore\render\camera.cpp(329): error C2065: “M_PI”: 未声明的标识符
  • Solução: adicione uma macro _USE_MATH_DEFINES

Referência:

6. glew32.lib não pode ser encontrado

  • Informações detalhadas
	1>LINK : fatal error LNK1181: 无法打开输入文件“glew32.lib”
  • Resolver

Inclua o caminho da lib no caminho * .lib, como: F: \ study \ engine \ animation \ DeepMimic \ glew-2.1.0 \ lib \ Release \ x64

7. Não foi possível encontrar o BulletDynamics.lib

  • Informações detalhadas
	1>LINK : fatal error LNK1181: 无法打开输入文件“BulletDynamics.lib”
  • Solução
    (1) Altere a configuração, o padrão é mostrado na figura a seguir e remova o _vs2010_x64_release
    glew_outpu_config
    (2) Consulte [4] para alterar a biblioteca estática necessária, as quatro seguintes podem ser
Nome do projeto Observações
BulletCollision
BulletDynamics
BulletSoftBody
LinearMath

8. Erro no link, símbolo não encontrado

  • Informações detalhadas
	1>  正在创建库 F:\study\engine\animation\DeepMimic\DeepMimic\DeepMimicCore\x64\Release_Swig\_DeepMimicCore.lib 和对象 F:\study\engine\animation\DeepMimic\DeepMimic\DeepMimicCore\x64\Release_Swig\_DeepMimicCore.exp
	1>Camera.obj : error LNK2001: 无法解析的外部符号 __imp_glutGetModifiers
	1>DrawUtil.obj : error LNK2001: 无法解析的外部符号 __imp___glutCreateWindowWithExit
	1>DrawUtil.obj : error LNK2001: 无法解析的外部符号 __imp___glutInitWithExit
	1>DrawUtil.obj : error LNK2001: 无法解析的外部符号 __imp_glutInitDisplayMode
	1>DrawUtil.obj : error LNK2001: 无法解析的外部符号 __imp_glutGet
	1>DrawUtil.obj : error LNK2001: 无法解析的外部符号 __imp_glutInitWindowSize
	1>GroundPlane.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl btStaticPlaneShape::btStaticPlaneShape(class btVector3 const &,float)" (??0btStaticPlaneShape@@QEAA@AEBVbtVector3@@M@Z)
	1>MultiBody.obj : error LNK2001: 无法解析的外部符号 "public: float const * __cdecl btMultiBody::getJointVelMultiDof(int)const " (?getJointVelMultiDof@btMultiBody@@QEBAPEBMH@Z)
	1>MultiBody.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btMultiBody::setupPlanar(int,float,class btVector3 const &,int,class btQuaternion const &,class btVector3 const &,class btVector3 const &,bool)" (?setupPlanar@btMultiBody@@QEAAXHMAEBVbtVector3@@HAEBVbtQuaternion@@00_N@Z)
	1>MultiBody.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl btMultiBody::btMultiBody(int,float,class btVector3 const &,bool,bool,bool)" (??0btMultiBody@@QEAA@HMAEBVbtVector3@@_N11@Z)
	1>SimBodyJoint.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btMultiBody::addJointTorqueMultiDof(int,float const *)" (?addJointTorqueMultiDof@btMultiBody@@QEAAXHPEBM@Z)
	1>SimBodyJoint.obj : error LNK2001: 无法解析的外部符号 "public: float * __cdecl btMultiBody::getJointPosMultiDof(int)" (?getJointPosMultiDof@btMultiBody@@QEAAPEAMH@Z)
	1>SimBodyJoint.obj : error LNK2001: 无法解析的外部符号 "public: float * __cdecl btMultiBody::getJointVelMultiDof(int)" (?getJointVelMultiDof@btMultiBody@@QEAAPEAMH@Z)
	1>SimCharacter.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btMultiBody::setupSpherical(int,float,class btVector3 const &,int,class btQuaternion const &,class btVector3 const &,class btVector3 const &,bool)" (?setupSpherical@btMultiBody@@QEAAXHMAEBVbtVector3@@HAEBVbtQuaternion@@00_N@Z)
	1>SimCharacter.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btMultiBody::setupRevolute(int,float,class btVector3 const &,int,class btQuaternion const &,class btVector3 const &,class btVector3 const &,class btVector3 const &,bool)" (?setupRevolute@btMultiBody@@QEAAXHMAEBVbtVector3@@HAEBVbtQuaternion@@000_N@Z)
	1>SimCharacter.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btMultiBody::setupPrismatic(int,float,class btVector3 const &,int,class btQuaternion const &,class btVector3 const &,class btVector3 const &,class btVector3 const &,bool)" (?setupPrismatic@btMultiBody@@QEAAXHMAEBVbtVector3@@HAEBVbtQuaternion@@000_N@Z)
	1>SimCharacter.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btMultiBody::setupFixed(int,float,class btVector3 const &,int,class btQuaternion const &,class btVector3 const &,class btVector3 const &,bool)" (?setupFixed@btMultiBody@@QEAAXHMAEBVbtVector3@@HAEBVbtQuaternion@@00_N@Z)
	1>SimCharacter.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl btMultiBodyJointLimitConstraint::btMultiBodyJointLimitConstraint(class btMultiBody *,int,float,float)" (??0btMultiBodyJointLimitConstraint@@QEAA@PEAVbtMultiBody@@HMM@Z)
	1>SimJoint.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btAngularLimit::set(float,float,float,float,float)" (?set@btAngularLimit@@QEAAXMMMMM@Z)
	1>SimJoint.obj : error LNK2001: 无法解析的外部符号 "public: float __cdecl btHingeConstraint::getHingeAngle(void)" (?getHingeAngle@btHingeConstraint@@QEAAMXZ)
	1>SimRigidBody.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl btRigidBody::setDamping(float,float)" (?setDamping@btRigidBody@@QEAAXMM@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: virtual float __cdecl btCollisionShape::getContactBreakingThreshold(float)const " (?getContactBreakingThreshold@btCollisionShape@@UEBAMM@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: virtual float __cdecl btCollisionShape::getAngularMotionDisc(void)const " (?getAngularMotionDisc@btCollisionShape@@UEBAMXZ)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __cdecl btCollisionShape::getBoundingSphere(class btVector3 &,float &)const " (?getBoundingSphere@btCollisionShape@@UEBAXAEAVbtVector3@@AEAM@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __cdecl btSphereShape::calculateLocalInertia(float,class btVector3 &)const " (?calculateLocalInertia@btSphereShape@@UEBAXMAEAVbtVector3@@@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __cdecl btConvexShape::project(class btTransform const &,class btVector3 const &,float &,float &,class btVector3 &,class btVector3 &)const " (?project@btConvexShape@@UEBAXAEBVbtTransform@@AEBVbtVector3@@AEAM2AEAV3@3@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: virtual float __cdecl btMultiBodyConstraintSolver::solveGroupCacheFriendlyFinish(class btCollisionObject * *,int,struct btContactSolverInfo const &)" (?solveGroupCacheFriendlyFinish@btMultiBodyConstraintSolver@@UEAAMPEAPEAVbtCollisionObject@@HAEBUbtContactSolverInfo@@@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: virtual float __cdecl btMultiBodyConstraintSolver::solveGroup(class btCollisionObject * *,int,class btPersistentManifold * *,int,class btTypedConstraint * *,int,struct btContactSolverInfo const &,class btIDebugDraw *,class btDispatcher *)" (?solveGroup@btMultiBodyConstraintSolver@@UEAAMPEAPEAVbtCollisionObject@@HPEAPEAVbtPersistentManifold@@HPEAPEAVbtTypedConstraint@@HAEBUbtContactSolverInfo@@PEAVbtIDebugDraw@@PEAVbtDispatcher@@@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "protected: virtual float __cdecl btMultiBodyConstraintSolver::solveSingleIteration(int,class btCollisionObject * *,int,class btPersistentManifold * *,int,class btTypedConstraint * *,int,struct btContactSolverInfo const &,class btIDebugDraw *)" (?solveSingleIteration@btMultiBodyConstraintSolver@@MEAAMHPEAPEAVbtCollisionObject@@HPEAPEAVbtPersistentManifold@@HPEAPEAVbtTypedConstraint@@HAEBUbtContactSolverInfo@@PEAVbtIDebugDraw@@@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "protected: virtual float __cdecl btMultiBodyConstraintSolver::solveGroupCacheFriendlySetup(class btCollisionObject * *,int,class btPersistentManifold * *,int,class btTypedConstraint * *,int,struct btContactSolverInfo const &,class btIDebugDraw *)" (?solveGroupCacheFriendlySetup@btMultiBodyConstraintSolver@@MEAAMPEAPEAVbtCollisionObject@@HPEAPEAVbtPersistentManifold@@HPEAPEAVbtTypedConstraint@@HAEBUbtContactSolverInfo@@PEAVbtIDebugDraw@@@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl btCapsuleShape::btCapsuleShape(float,float)" (??0btCapsuleShape@@QEAA@MM@Z)
	1>World.obj : error LNK2001: 无法解析的外部符号 "protected: virtual float __cdecl btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyIterations(class btCollisionObject * *,int,class btPersistentManifold * *,int,class btTypedConstraint * *,int,struct btContactSolverInfo const &,class btIDebugDraw *)" (?solveGroupCacheFriendlyIterations@btSequentialImpulseConstraintSolver@@MEAAMPEAPEAVbtCollisionObject@@HPEAPEAVbtPersistentManifold@@HPEAPEAVbtTypedConstraint@@HAEBUbtContactSolverInfo@@PEAVbtIDebugDraw@@@Z)
	1>DeepMimicCore.obj : error LNK2001: 无法解析的外部符号 __imp_glutPostRedisplay
	1>F:\study\engine\animation\DeepMimic\DeepMimic\DeepMimicCore\_DeepMimicCore.pyd : fatal error LNK1120: 33 个无法解析的外部命令
  • Resolvido, consulte [6]

(1) O símbolo de excesso não pode ser encontrado porque é compilado no formato de 32 bits. Use cmake para gerar um x64 e compile-o.
(2) O símbolo de marcador não pode ser encontrado devido à precisão dupla. Macro

Até agora, compilei o DeepMimicCore, tão satisfeito! ! !

Referência

[1] Página inicial do github do DeepMimic

[2] O Windows constrói o ambiente de vidro livre OpenGLut do zero

[3] O programa VS2017 C ++ relatou "erro C2065:" M_PI ": identificador não declarado"

[4] Compile e instale o Bullet 2.82 no Windows (configuração do ambiente de desenvolvimento Bullet Physics)

[5] Erro de compilação no Windows 10 (erro LNK2001: símbolo externo não resolvido)

Publicado 41 artigos originais · elogiou 7 · mais de 20.000 visualizações

Acho que você gosta

Origin blog.csdn.net/pkxpp/article/details/102654576
Recomendado
Clasificación