Skip to content

Compile failed on src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o #4

@physics1024

Description

@physics1024

Hi,
I'm trying to use SDL2 on a non-GL device. At first I tried to directly enable DFB support in SDL2, however it totally failed due to a series of weird pointer type incompatibility. So I made another try on using this software GL and here I got some other fails.

First I found some dependencies missed like EGL lib and llvm. I don't know the version required, so I just simply installed llvm19 and libgles2-mesa. Then I tried building the project following the INSTALL said.

And this is what I got:

debian@licheervnano-30df:~/SwiftShaderGL-DirectFB$ meson compile -C build/
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/debian/SwiftShaderGL-DirectFB/build
ninja: Entering directory `/home/debian/SwiftShaderGL-DirectFB/build'
[11/108] Compiling C++ object src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o
FAILED: src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o
c++ -Isrc/libEGL.so.1.p -Isrc -I../src -I../src/OpenGL -I/usr/local/include -I/usr/local/include/directfb -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -DEGL_EGLEXT_PROTOTYPES -DEGL_NO_PLATFORM_SPECIFIC_TYPES -DEGL_PLATFORM_DIRECTFB_EXT=0x31DB -DMAJOR_VERSION=4 -DMINOR_VERSION=1 -DDISABLE_DEBUG -Wno-strict-aliasing -Wno-attributes -Wno-ignored-attributes -fPIC -pthread -MD -MQ src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o -MF src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o.d -o src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o -c ../src/OpenGL/libEGL/Surface.cpp
In file included from ../src/Main/FrameBuffer.hpp:18,
                 from ../src/OpenGL/libEGL/Surface.hpp:20,
                 from ../src/OpenGL/libEGL/Surface.cpp:15:
../src/Reactor/Reactor.hpp: In member function ‘std::shared_ptr<rr::Routine> rr::Function<Return(Arguments ...)>::operator()(const char*, ...)’:
../src/Reactor/Reactor.hpp:1894:9: error: there are no arguments to ‘vsnprintf’ that depend on a template parameter, so a declaration of ‘vsnprintf’ must be available [-fpermissive]
 1894 |         vsnprintf(fullName, 1024, name, vararg);
      |         ^~~~~~~~~
../src/Reactor/Reactor.hpp:1894:9: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
[12/108] Compiling C++ object src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o
FAILED: src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o
c++ -Isrc/libGLESv2.so.2.p -Isrc -I../src -I../src/OpenGL -I/usr/local/include -I/usr/local/include/directfb -I/usr/lib/llvm-19/include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -DEGL_EGLEXT_PROTOTYPES -DEGL_NO_PLATFORM_SPECIFIC_TYPES -DEGL_PLATFORM_DIRECTFB_EXT=0x31DB -DMAJOR_VERSION=4 -DMINOR_VERSION=1 -DDISABLE_DEBUG -Wno-strict-aliasing -Wno-attributes -Wno-ignored-attributes -fPIC -pthread -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MQ src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o -MF src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o.d -o src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o -c ../src/Main/FrameBuffer.cpp
In file included from ../src/Main/FrameBuffer.hpp:18,
                 from ../src/Main/FrameBuffer.cpp:15:
../src/Reactor/Reactor.hpp: In member function ‘std::shared_ptr<rr::Routine> rr::Function<Return(Arguments ...)>::operator()(const char*, ...)’:
../src/Reactor/Reactor.hpp:1894:9: error: there are no arguments to ‘vsnprintf’ that depend on a template parameter, so a declaration of ‘vsnprintf’ must be available [-fpermissive]
 1894 |         vsnprintf(fullName, 1024, name, vararg);
      |         ^~~~~~~~~
../src/Reactor/Reactor.hpp:1894:9: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
../src/Reactor/Reactor.hpp: In instantiation of ‘std::shared_ptr<rr::Routine> rr::Function<Return(Arguments ...)>::operator()(const char*, ...) [with Return = rr::Void; Arguments = {rr::Pointer<rr::Byte>, rr::Pointer<rr::Byte>, rr::Pointer<rr::Byte>}]’:
../src/Main/FrameBuffer.cpp:527:17:   required from here
  527 |         return function("FrameBuffer");
      |                ~~~~~~~~^~~~~~~~~~~~~~~
../src/Reactor/Reactor.hpp:1894:18: error: ‘vsnprintf’ was not declared in this scope; did you mean ‘vswprintf’?
 1894 |         vsnprintf(fullName, 1024, name, vararg);
      |         ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         vswprintf
ninja: build stopped: subcommand failed.

I searched sometime and the web said the header stdio was miss in some sources, though I still have no idea about this.

I'm a truly layman to both GL and DFB, please forgive me if the problem is a foolish.

If there are other methods to run SDL2 on DirectFB2, please tell me and I'd appreciate it!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions