ライブラリだけはできた。が、実行用バイナリはビルド失敗。
情報源
手順
raspi-config
Advanced Options
→ GL Driver
→ Legacy
を選択する。
git clone https://github.com/shirobu2400/mmdpi cd mmdpi cmake . -Dpi=on make
ログ
$ cmake . -Dpi=on -- The C compiler identification is GNU 8.3.0 -- The CXX compiler identification is GNU 8.3.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.11") -- Found PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (found version "1.6.36") -- Found JPEG: /usr/lib/arm-linux-gnueabihf/libjpeg.so (found version "62") -- Found GLUT: /usr/lib/arm-linux-gnueabihf/libglut.so CMake Warning at libmmdpi/CMakeLists.txt:118 (find_package): By not providing "Findglut.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "glut", but CMake did not find one. Could not find a package configuration file provided by "glut" with any of the following names: glutConfig.cmake glut-config.cmake Add the installation prefix of "glut" to CMAKE_PREFIX_PATH or set "glut_DIR" to a directory containing one of the above files. If "glut" provides a separate development package or SDK, be sure it has been installed. CMake Warning at libmmdpi/CMakeLists.txt:119 (find_package): By not providing "Findfreeglut.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "freeglut", but CMake did not find one. Could not find a package configuration file provided by "freeglut" with any of the following names: freeglutConfig.cmake freeglut-config.cmake Add the installation prefix of "freeglut" to CMAKE_PREFIX_PATH or set "freeglut_DIR" to a directory containing one of the above files. If "freeglut" provides a separate development package or SDK, be sure it has been installed. CMake Warning at mmdpiv/CMakeLists.txt:63 (find_package): By not providing "Findglut.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "glut", but CMake did not find one. Could not find a package configuration file provided by "glut" with any of the following names: glutConfig.cmake glut-config.cmake Add the installation prefix of "glut" to CMAKE_PREFIX_PATH or set "glut_DIR" to a directory containing one of the above files. If "glut" provides a separate development package or SDK, be sure it has been installed. CMake Warning at mmdpiv/CMakeLists.txt:64 (find_package): By not providing "Findfreeglut.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "freeglut", but CMake did not find one. Could not find a package configuration file provided by "freeglut" with any of the following names: freeglutConfig.cmake freeglut-config.cmake Add the installation prefix of "freeglut" to CMAKE_PREFIX_PATH or set "freeglut_DIR" to a directory containing one of the above files. If "freeglut" provides a separate development package or SDK, be sure it has been installed. CMake Warning (dev) at mmdpiv/CMakeLists.txt:128 (link_directories): This command specifies the relative path ../libmmdpi as a link directory. Policy CMP0015 is not set: link_directories() treats paths relative to the source dir. Run "cmake --help-policy CMP0015" for policy details. Use the cmake_policy command to set the policy and suppress this warning. This warning is for project developers. Use -Wno-dev to suppress it. -- Configuring done CMake Warning (dev) in mmdpiv/CMakeLists.txt: Policy CMP0081 is not set: Relative paths not allowed in LINK_DIRECTORIES target property. Run "cmake --help-policy CMP0081" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Found relative path while evaluating link directories of "mmdpiv": "../libmmdpi" This warning is for project developers. Use -Wno-dev to suppress it. -- Generating done -- Build files have been written to: /tmp/work/mmdpi
$ make Scanning dependencies of target mmdpis [ 1%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/mmdpi.cpp.o [ 3%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/tools/get_bin.cpp.o [ 5%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/tools/bitmap.cpp.o [ 7%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/tools/png.cpp.o [ 9%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/tools/jpg.cpp.o [ 11%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/tools/dds.cpp.o [ 13%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/tools/tga_image.cpp.o [ 15%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/tools/utf8_sjis.cpp.o [ 17%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/mmdpi_model.cpp.o [ 19%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/mmdpi_shader.cpp.o [ 21%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/mmdpi_adjust.cpp.o [ 23%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/mmdpi_bone.cpp.o [ 25%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/model/mmdpi_mesh.cpp.o [ 26%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmx/pmx_ik.cpp.o [ 28%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmx/pmx_load.cpp.o [ 30%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmx/pmx_analyze.cpp.o [ 32%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmx/pmx_draw.cpp.o [ 34%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmx/pmx.cpp.o [ 36%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmd/pmd_ik.cpp.o [ 38%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmd/pmd_load.cpp.o [ 40%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmd/pmd_analyze.cpp.o [ 42%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmd/pmd_draw.cpp.o [ 44%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/pmd/pmd.cpp.o [ 46%] Building CXX object libmmdpi/CMakeFiles/mmdpis.dir/vmd/vmd.cpp.o [ 48%] Linking CXX shared library libmmdpis.so [ 48%] Built target mmdpis Scanning dependencies of target mmdpi [ 50%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/mmdpi.cpp.o [ 51%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/tools/get_bin.cpp.o [ 53%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/tools/bitmap.cpp.o [ 55%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/tools/png.cpp.o [ 57%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/tools/jpg.cpp.o [ 59%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/tools/dds.cpp.o [ 61%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/tools/tga_image.cpp.o [ 63%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/tools/utf8_sjis.cpp.o [ 65%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/mmdpi_model.cpp.o [ 67%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/mmdpi_shader.cpp.o [ 69%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/mmdpi_adjust.cpp.o [ 71%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/mmdpi_bone.cpp.o [ 73%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/model/mmdpi_mesh.cpp.o [ 75%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmx/pmx_ik.cpp.o [ 76%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmx/pmx_load.cpp.o [ 78%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmx/pmx_analyze.cpp.o [ 80%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmx/pmx_draw.cpp.o [ 82%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmx/pmx.cpp.o [ 84%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmd/pmd_ik.cpp.o [ 86%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmd/pmd_load.cpp.o [ 88%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmd/pmd_analyze.cpp.o [ 90%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmd/pmd_draw.cpp.o [ 92%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/pmd/pmd.cpp.o [ 94%] Building CXX object libmmdpi/CMakeFiles/mmdpi.dir/vmd/vmd.cpp.o [ 96%] Linking CXX static library libmmdpi.a [ 96%] Built target mmdpi Scanning dependencies of target mmdpiv [ 98%] Building CXX object mmdpiv/CMakeFiles/mmdpiv.dir/glmain_pi.cpp.o In file included from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/../model/tools/../mmdpi_include.h:19, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/../model/tools/get_bin.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_load.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_analyze.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_draw.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/mmdpi.h:2, from /tmp/work/mmdpi/mmdpiv/glmain_pi.cpp:56: /usr/include/GL/glew.h:88:2: error: #error gl2.h included before glew.h #error gl2.h included before glew.h ^~~~~ In file included from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/../model/tools/../mmdpi_include.h:19, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/../model/tools/get_bin.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_load.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_analyze.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_draw.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/mmdpi.h:2, from /tmp/work/mmdpi/mmdpiv/glmain_pi.cpp:56: /usr/include/GL/glew.h:1680:19: error: conflicting declaration ‘typedef ptrdiff_t GLintptr’ typedef ptrdiff_t GLintptr; ^~~~~~~~ In file included from /tmp/work/mmdpi/mmdpiv/glmain_pi.cpp:10: /opt/vc/include/GLES2/gl2.h:65:26: note: previous declaration as ‘typedef khronos_intptr_t GLintptr’ typedef khronos_intptr_t GLintptr; ^~~~~~~~ In file included from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/../model/tools/../mmdpi_include.h:19, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/../model/tools/get_bin.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_load.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_analyze.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd_draw.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/pmd/pmd.h:2, from /tmp/work/mmdpi/mmdpiv/../libmmdpi/mmdpi.h:2, from /tmp/work/mmdpi/mmdpiv/glmain_pi.cpp:56: /usr/include/GL/glew.h:1681:19: error: conflicting declaration ‘typedef ptrdiff_t GLsizeiptr’ typedef ptrdiff_t GLsizeiptr; ^~~~~~~~~~ In file included from /tmp/work/mmdpi/mmdpiv/glmain_pi.cpp:10: /opt/vc/include/GLES2/gl2.h:66:26: note: previous declaration as ‘typedef khronos_ssize_t GLsizeiptr’ typedef khronos_ssize_t GLsizeiptr; ^~~~~~~~~~ make[2]: *** [mmdpiv/CMakeFiles/mmdpiv.dir/build.make:63: mmdpiv/CMakeFiles/mmdpiv.dir/glmain_pi.cpp.o] エラー 1 make[1]: *** [CMakeFiles/Makefile2:185: mmdpiv/CMakeFiles/mmdpiv.dir/all] エラー 2 make: *** [Makefile:130: all] エラー 2
以下エラーが出た。
/usr/include/GL/glew.h:88:2: error: #error gl2.h included before glew.h
だが、ライブラリ./libmmdpi/libmmdpis.so
は作成されていた。
所感
なんとかライブラリの動作確認をしたい。
対象環境
- Raspbierry pi 4 Model B
- Raspbian buster 10.0 2019-09-26 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux