[solved] Cannnot compile ppsspp core

Hi, i have a problem compiling the ppsspp core. i always get: does anyone knows what i am missing?

Build Libretro core
Building for native host.
/usr/local/src/libretro-super/libretro-ppsspp/build /usr/local/src/libretro-super/libretro-ppsspp
Normal Build
Using X11 for Vulkan
-- No build type selected, default to Release
CMAKE_SYSTEM_PROCESSOR: x86_64
Generating for x86, Release
Generating for x86_64, Release
-- Google Mock was not found - tests based on that will not build
-- spirv-tools not linked - illegal SPIRV may be generated for HLSL
--  Found avcodec: /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/include /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/lib/libavcodec.a
--  Found avformat: /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/include /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/lib/libavformat.a
--  Found avutil: /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/include /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/lib/libavutil.a
--  Found swresample: /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/include /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/lib/libswresample.a
--  Found swscale: /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/include /usr/local/src/libretro-super/libretro-ppsspp/ffmpeg/linux/x86_64/lib/libswscale.a
-- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
-- Up-to-date: /usr/local/src/libretro-super/libretro-ppsspp/assets/ui_atlas.zim
-- Up-to-date: /usr/local/src/libretro-super/libretro-ppsspp/assets/logo.png
-- Up-to-date: /usr/local/src/libretro-super/libretro-ppsspp/assets/icon_regular_72.png
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/libretro-super/libretro-ppsspp
make: *** Es wurden keine Ziele angegeben und keine âmakeâ-Steuerdatei gefunden.  Schluss.

Thank you

Christian

Looks like you’re missing libpng-dev or equivalent, but it also looks like you’re building standalone instead of the libretro core.

i added: export PKG_CONFIG_PATH="/usr/lib64/pkgconfig/:/usr/local/lib64/pkgconfig/" that solved the missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR error. Now i get a spirv error: spirv_cross.cpp:(.text+0x24c5): undefined reference to spirv_cross::ParsedIR::unset_decoration(spirv_cross::TypedID<(spirv_cross::Types)0>, spv::Decoration)' /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libspirv-cross-core.a(spirv_cross.cpp.o): in functionspirv_cross::SPIRType& spirv_cross::Compiler::set<spirv_cross::SPIRType>(unsigned int)’: spirv_cross.cpp:(.text.ZN11spirv_cross8Compiler3setINS_8SPIRTypeEJEEERT_jDpOT0[ZN11spirv_cross8Compiler3setINS_8SPIRTypeEJEEERT_jDpOT0]+0x30): undefined reference to spirv_cross::ParsedIR::add_typed_id(spirv_cross::Types, spirv_cross::TypedID<(spirv_cross::Types)0>)' /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libspirv-cross-core.a(spirv_cross.cpp.o): in functionspirv_cross::SPIRExpression& spirv_cross::Compiler::set<spirv_cross::SPIRExpression, char const (&) [1], unsigned int&, bool>(unsigned int, char const (&) [1], unsigned int&, bool&&)’: spirv_cross.cpp:(.text.ZN11spirv_cross8Compiler3setINS_14SPIRExpressionEJRA1_KcRjbEEERT_jDpOT0[ZN11spirv_cross8Compiler3setINS_14SPIRExpressionEJRA1_KcRjbEEERT_jDpOT0]+0x3e): undefined reference to spirv_cross::ParsedIR::add_typed_id(spirv_cross::Types, spirv_cross::TypedID<(spirv_cross::Types)0>)' /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libspirv-cross-core.a(spirv_cross.cpp.o): in functionspirv_cross::SPIRVariable& spirv_cross::Compiler::set<spirv_cross::SPIRVariable, unsigned int&, spv::StorageClass, int>(unsigned int, unsigned int&, spv::StorageClass&&, int&&)’: spirv_cross.cpp:(.text.ZN11spirv_cross8Compiler3setINS_12SPIRVariableEJRjN3spv12StorageClassEiEEERT_jDpOT0[ZN11spirv_cross8Compiler3setINS_12SPIRVariableEJRjN3spv12StorageClassEiEEERT_jDpOT0]+0x3e): undefined reference to `spirv_cross::ParsedIR::add_typed_id(spirv_cross::Types, spirv_cross::TypedID<(spirv_cross::Types)0>)’ collect2: Fehler: ld gab 1 als Ende-Status zurück make[2]: *** [CMakeFiles/PPSSPPSDL.dir/build.make:583: PPSSPPSDL] Fehler 1 make[1]: *** [CMakeFiles/Makefile2:530: CMakeFiles/PPSSPPSDL.dir/all] Fehler 2 make: *** [Makefile:130: all] Fehler 2

Thank you

Like I said, I’m pretty sure you’re not compiling the libretro core, but rather the standalone PPSSPP application, which I’m not familiar enough with to provide support.

sorry… i thought with: ./b --libretro i am building the libretro core only how to build it the correct way? (i cannont find it)

It looks like the libretro core is built via the static Makefile inside the libretro directory.

Hi, this night i tried a complete build with my standard script: ./libretro-build.sh ./retroarch-build.sh ./libretro-config.sh ./libretro-super.sh ./retrolink.sh ./libretro-install.sh ./libretro-fetch.sh retroarch ./libretro-build-database.sh cd retroarch make install and got this result: spirv_glsl.cpp:(.text._ZN11spirv_cross12CompilerGLSL12emit_glsl_opEjjjPKjj+0x1151): undefined reference to spirv_cross::ParsedIR::increase_bound_by(unsigned int)' /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../ext/SPIRV-Cross/spirv_glsl.o: in functionspirv_cross::CompilerGLSL::emit_instruction(spirv_cross::Instruction const&)’: spirv_glsl.cpp:(.text._ZN11spirv_cross12CompilerGLSL16emit_instructionERKNS_11InstructionE+0x3d6f): undefined reference to spirv_cross::ParsedIR::add_typed_id(spirv_cross::Types, spirv_cross::TypedID<(spirv_cross::Types)0>)' /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: spirv_glsl.cpp:(.text._ZN11spirv_cross12CompilerGLSL16emit_instructionERKNS_11InstructionE+0x6685): undefined reference tospirv_cross::ParsedIR::add_typed_id(spirv_cross::Types, spirv_cross::TypedID<(spirv_cross::Types)0>)’ collect2: Fehler: ld gab 1 als Ende-Status zurück gmake: *** [Makefile:444: ppsspp_libretro.so] Fehler 1 cp “ppsspp_libretro.so” “/usr/local/src/libretro-super/dist/unix/ppsspp_libretro.so” cp: der Aufruf von stat für ‘ppsspp_libretro.so’ ist nicht möglich: Datei oder Verzeichnis nicht gefunden i think spirv-tools ist somewhere broken (i use gentoo and try to reemerge it)

Hi, i got much further uninstalling the spirv-tools. the old PNG_LIBRARY PNG_PNG_INCLUDE_DIR errors doesn´t matter. it useses the png library included in the ppsspp source instead. now i get: /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/…/…/…/…/x86_64-pc-linux-gnu/bin/ld: /usr/lib/libSDL2.so: error adding symbols: file in wrong format collect2: Fehler: ld gab 1 als Ende-Status zurück make[2]: *** [libretro/CMakeFiles/ppsspp_libretro.dir/build.make:178: lib/ppsspp_libretro.so] Fehler 1 make[1]: *** [CMakeFiles/Makefile2:2562: libretro/CMakeFiles/ppsspp_libretro.dir/all] Fehler 2 make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet… /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/…/…/…/…/x86_64-pc-linux-gnu/bin/ld: /usr/lib/libSDL2.so: error adding symbols: file in wrong format collect2: Fehler: ld gab 1 als Ende-Status zurück make[2]: *** [CMakeFiles/PPSSPPSDL.dir/build.make:583: PPSSPPSDL] Fehler 1 make[1]: *** [CMakeFiles/Makefile2:530: CMakeFiles/PPSSPPSDL.dir/all] Fehler 2 make: *** [Makefile:130: all] Fehler 2 which is realy strange. because in /usr/lib are the 32bit Libraries. it should use /usr/lib64 for linking the 64bit Libraries. (i have a multilib system) think i have to check the gentoo forums for that. Thank you for the support :slight_smile:

Finaly i made it. it´s so simmple: in the build script add: . /etc/portage/make.conf and ppsspp core is building fine :slight_smile:

1 Like