pyomeca / ezc3d

Easy to use C3D reader/writer for C++, Python and Matlab
https://pyomeca.github.io/Documentation/ezc3d/index.html
MIT License
142 stars 44 forks source link

Mex files are not produced upon building (Youtube Video Instructions) #325

Closed SamMans closed 2 months ago

SamMans commented 2 months ago

Hi, in my case only the ezc3d.dll file was generated in the install directory. The mex files were not produced. I followed the same exact steps tho. I copied the resulting .dll file into the MATLAB directory and tried to test the ez3cd read command, but it didn't recognize the command which means the compiling failed.

pariterre commented 2 months ago

Dear @SamMans ! Can you provide a screen shot of the CMake and a screenshot/copy-paste of the compiling output? Thanks :)

SamMans commented 2 months ago

Cmake screenshots (by Cmake, I believe you mean the Cmake gui hopefully): Screenshot (447) All_Build build step output:

Build started...
1>------ Skipped Build: Project: uninstall, Configuration: Debug x64 ------
1>Project not selected to build for this solution configuration 
2>------ Skipped Build: Project: INSTALL, Configuration: Debug x64 ------
2>Project not selected to build for this solution configuration 
========== Build: 0 succeeded, 0 failed, 8 up-to-date, 2 skipped ==========
========== Build started at 6:24 PM and took 00.063 seconds ==========

Release build step:

Build started...
1>------ Skipped Build: Project: uninstall, Configuration: Release x64 ------
1>Project not selected to build for this solution configuration 
2>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
2>Project not selected to build for this solution configuration 
========== Build: 0 succeeded, 0 failed, 8 up-to-date, 2 skipped ==========
========== Build started at 6:25 PM and took 00.070 seconds ==========

Install build step:

Build started...
1>------ Build started: Project: INSTALL, Configuration: Release x64 ------
1>1>
1>CMake Warning (dev) at cmake_install.cmake:5 (set):
1>-- Install configuration: "Release"
1>  Syntax error in cmake code at
1>
1>    C:/Users/Samer/Documents/ezc3d/release/cmake_install.cmake:5
1>
1>  when parsing string
1>
1>    C:\Users\Samer\Documents\ezc3d\install
1>
1>  Invalid escape sequence \U
1>
1>  Policy CMP0010 is not set: Bad variable reference syntax is an error.  Run
1>  "cmake --help-policy CMP0010" for policy details.  Use the cmake_policy
1>  command to set the policy and suppress this warning.
1>This warning is for project developers.  Use -Wno-dev to suppress it.
1>
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/lib/ezc3d.lib
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/bin/ezc3d.dll
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Analogs.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/AnalogsInfo.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/AnalogsSubframe.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Channel.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Data.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/DataStartInfo.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3d.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3dNamespace.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3d_all.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Frame.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Group.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Header.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/ezc3dMath.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix33.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix44.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix66.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Vector3d.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Vector6d.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/modules
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/modules/ForcePlatforms.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Parameter.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Parameters.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Point.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Points.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/PointsInfo.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Rotation.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Rotations.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/RotationsInfo.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/RotationsSubframe.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3dConfig.h
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dTargets.cmake
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dTargets-release.cmake
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dConfig.cmake
1>-- Up-to-date: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dConfigVersion.cmake
1>CMake Error at binding/matlab/cmake_install.cmake:55 (file):
1>  file cannot create directory: C:/Program
1>  Files/MATLAB/R2022a/toolbox/ezc3d_matlab.  Maybe need administrative
1>  privileges.
1>Call Stack (most recent call first):
1>  binding/cmake_install.cmake:37 (include)
1>  cmake_install.cmake:108 (include)
1>
1>
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: The command "setlocal
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmEnd
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmErrorLevel
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: exit /b %1
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmDone
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :VCEnd" exited with code 1.
1>Done building project "INSTALL.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 8 up-to-date, 0 skipped ==========
========== Build started at 6:26 PM and took 01.287 seconds ==========
pariterre commented 2 months ago

Can you please change the Matlab_ezc3d_INSTALL_DIR for a folder on which you have written access (or run Visual Studio with adminstrative rights), and send me the output again

SamMans commented 2 months ago

This is the latest Install build (I repeated the whole process after deleting the old files and the previous failure seems to have been mitigated, but still no mex files, just .dll):

Build started...
1>------ Build started: Project: INSTALL, Configuration: Release x64 ------
1>1>
1>CMake Warning (dev) at cmake_install.cmake:5 (set):
1>-- Install configuration: "Release"
1>  Syntax error in cmake code at
1>
1>    C:/Users/Samer/Documents/ezc3d/release/cmake_install.cmake:5
1>
1>  when parsing string
1>
1>    C:\Users\Samer\Documents\ezc3d\install
1>
1>  Invalid escape sequence \U
1>
1>  Policy CMP0010 is not set: Bad variable reference syntax is an error.  Run
1>  "cmake --help-policy CMP0010" for policy details.  Use the cmake_policy
1>  command to set the policy and suppress this warning.
1>This warning is for project developers.  Use -Wno-dev to suppress it.
1>
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/lib/ezc3d.lib
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/bin/ezc3d.dll
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Analogs.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/AnalogsInfo.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/AnalogsSubframe.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Channel.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Data.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/DataStartInfo.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3d.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3dNamespace.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3d_all.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Frame.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Group.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Header.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/ezc3dMath.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix33.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix44.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Matrix66.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Vector3d.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/math/Vector6d.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/modules
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/modules/ForcePlatforms.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Parameter.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Parameters.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Point.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Points.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/PointsInfo.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Rotation.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/Rotations.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/RotationsInfo.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/RotationsSubframe.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/include/ezc3d/ezc3dConfig.h
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dTargets.cmake
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dTargets-release.cmake
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dConfig.cmake
1>-- Installing: C:\Users\Samer\Documents\ezc3d\install/lib/cmake/ezc3d/ezc3dConfigVersion.cmake
1>-- Installing: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3dRead.lib
1>-- Installing: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3dRead.mexw64
1>-- Installing: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3dWrite.lib
1>-- Installing: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3dWrite.mexw64
1>-- Installing: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3d.lib
1>-- Installing: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3d.dll
1>-- Up-to-date: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3dNewParam.m
1>-- Up-to-date: C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3dAddEvent.m
========== Build: 1 succeeded, 0 failed, 8 up-to-date, 0 skipped ==========
========== Build started at 6:50 PM and took 00.878 seconds ==========
pariterre commented 2 months ago

C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ezc3dRead.mexw64

The mex is at that location

pariterre commented 2 months ago

That said, your CMAKE_INSTALL_PREFIX is wrong (C:\Users\Samer\Documents\ezc3d\install), the "\" should read either "\" or "/" (this is a well-known windows problem)

SamMans commented 2 months ago

Yes, I was about to edit my previous comment (I haven't read the output properly, sorry about that). Should I copy the mex files along with the .dll produced in a user-defined ezc3d directory (In the Youtube video, it was Documents/MATLAB/ezc3d), or should I use them in the directory they were installed at right away and save my breath?

pariterre commented 2 months ago

Since you installed the library in the "toolbox" folder, you can simply use it as is (assuming you've added C:/Program Files/MATLAB/R2022a/toolbox/ezc3d_matlab/ in your search path in matlab)

Enjoy :)

SamMans commented 2 months ago

Oh yeah. I tried that and it worked. Thank you very much for your help!!