• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

SOLVED Missing executable after building on Raspberry Pi

orbian

Member
Hi,

I just upgraded to v2.3.2.420 and rebuilt my Raspberry Pi projects. I can't seem to find any executable output though.

Previously I would build the project (Ubuntu->Local->YYC->pi->Default) and the executable would appear in:
/home/pi//GameMakerStudio2/yyc/ProjectName/ProjectName Where "ProjectName" is just the name of the game I am making.

Now I get /home/pi//GameMakerStudio2/yyc/ProjectName but nothing inside that folder can be run.

The final line in the console during build is:
SUCCESS: Run Program Complete

Usually I could find the output after that.
Has the location for this changed? I can't seem to locate anything.
 

orbian

Member
I see this in the build log:
/usr/include/stdlib.h:25:10: fatal error: 'bits/libc-header-start.h' file not found
#include <bits/libc-header-start.h>

It was working fine in the previous version of GameMaker Studio. I haven't made any updates to the Pi, Just GM.
 

EvanSki

Raccoon Jam Host
on the raspberry pi, in the terminal run
sudo apt update

clean your gms project then try to compile again
 

orbian

Member
So it appears the makefiles have change between versions.

This is the 2.3.1.542 version that works:
Code:
# The name of the compiler
COMPILER        = clang
COMPILEOPTS     += -O3 -Wno-deprecated-writable-strings
LINKEROPTS      = -lcurl -Wl,-s

# The location of the system libraries
LINUX_LIBDIR_USR    = /usr/lib/arm-linux-gnueabihf
LINUX_LIBDIR    = /lib/arm-linux-gnueabihf

LIBS          = $(LINUX_LIBDIR_USR)/libstdc++.so.6 \
                $(LINUX_LIBDIR_USR)/libz.so \
                $(LINUX_LIBDIR_USR)/libXxf86vm.so \
                $(LINUX_LIBDIR_USR)/libGL.so \
                $(LINUX_LIBDIR_USR)/libopenal.so \
                $(LINUX_LIBDIR_USR)/libm.so \
                $(LINUX_LIBDIR_USR)/librt.so \
                $(LINUX_LIBDIR_USR)/libpthread.so \
                $(LINUX_LIBDIR_USR)/libdl.so \
                $(LINUX_LIBDIR_USR)/libcrypto.so \
                $(LINUX_LIBDIR_USR)/libXext.so \
                $(LINUX_LIBDIR_USR)/libX11.so \
                $(LINUX_LIBDIR_USR)/libXrandr.so \
                $(LINUX_LIBDIR_USR)/libGLU.so \
                $(LINUX_LIBDIR_USR)/libssl.so

TestPi : make_outdir out/TestPi.vars.o  libyoyo_yyc-arm.a
    $(COMPILER) $(COMPILEOPTS) $(LINKEROPTS) -I . -o TestPi out/*.o -DYYLLVM libyoyo_yyc-arm.a $(LIBS) -Wl,-rpath,\$$ORIGIN

make_outdir:
    mkdir -p out

clean:
    rm -rf out

out/TestPi.vars.o: Game/TestPi.vars.cpp YYGML.h Game/gmlids.h
    $(COMPILER) $(COMPILEOPTS) -c -I . -o out/TestPi.vars.o Game/TestPi.vars.cpp -DYYLLVM
This is the 2.3.2.420 version that gives a compile error:
Code:
# The name of the compiler
COMPILER        = clang
COMPILEOPTS     += -m64 -O3 -Wno-deprecated-writable-strings -I Game -I /usr/include/arm-linux-gnueabihf
COMPILEPREPCHOPTS := $(COMPILEOPTS)
PCH_SOURCE        = Game/pch.hpp
PCH_DEST         = out/pch.hpp.pch
COMPILEOPTS     += -include-pch $(PCH_DEST)
COMMONDEPS        = YYGML.h Game/gmlids.h $(PCH_DEST)
LINKEROPTS      = -lcurl -Wl,-s


# The location of the system libraries
LINUX_LIBDIR_USR    = /usr/lib/arm-linux-gnueabihf
LINUX_LIBDIR    = /lib/arm-linux-gnueabihf

LIBS          = $(LINUX_LIBDIR_USR)/libstdc++.so.6 \
                $(LINUX_LIBDIR_USR)/libz.so \
                $(LINUX_LIBDIR_USR)/libXxf86vm.so \
                $(LINUX_LIBDIR_USR)/libGL.so \
                $(LINUX_LIBDIR_USR)/libopenal.so \
                $(LINUX_LIBDIR_USR)/libm.so \
                $(LINUX_LIBDIR_USR)/librt.so \
                $(LINUX_LIBDIR_USR)/libpthread.so \
                $(LINUX_LIBDIR_USR)/libdl.so \
                $(LINUX_LIBDIR_USR)/libcrypto.so \
                $(LINUX_LIBDIR_USR)/libXext.so \
                $(LINUX_LIBDIR_USR)/libX11.so \
                $(LINUX_LIBDIR_USR)/libXrandr.so \
                $(LINUX_LIBDIR_USR)/libGLU.so \
                $(LINUX_LIBDIR_USR)/libssl.so

TestPi : make_outdir $(PCH_DEST) out/TestPi.vars.o  libyoyo_yyc-arm.a
    $(COMPILER) $(COMPILEOPTS) $(LINKEROPTS) -I . -o TestPi out/*.o -DYYLLVM libyoyo_yyc-arm.a $(LIBS) -Wl,-rpath,\$$ORIGIN

make_outdir:
    mkdir -p out

clean:
    rm -rf out

$(PCH_DEST) : $(PCH_SOURCE)
    $(COMPILER) $(COMPILEPREPCHOPTS) -o $(PCH_DEST) $(PCH_SOURCE) -I . -DYYLLVM   

out/TestPi.vars.o: Game/TestPi.vars.cpp $(COMMONDEPS)
    $(COMPILER) $(COMPILEOPTS) -c -I . -o out/TestPi.vars.o Game/TestPi.vars.cpp -DYYLLVM
 

orbian

Member
on the raspberry pi, in the terminal run
sudo apt update

clean your gms project then try to compile again
I tried that, still not output. It fails with the same message. I there a package I'm supposed to install after the update?

Thanks.
 

rwkay

YoYo Games Staff
YYG Staff
@orbian apologies but it looks like the linux arm makefile template got mangled at some point and it was not caught before release the line

COMPILEOPTS += -m64 -O3 -Wno-deprecated-writable-strings -I Game -I /usr/include/arm-linux-gnueabihf

should have the -m64 removed from it

you should be able to edit the template in the runtime directory (on PC that will be in c:\program data\GameMakerStudio2\Cache\runtimes\runtimes-2.3.2.<num> and on Mac it will be in /Users/Shared/GameMakerStudio2/Cache/runtimes/runtime-2.3.2.<num>) within that there will be yyc/linux/makefile_armv7

We will fix that in a future update, but you should be able to fix it yourself locally

Russell
 

EvanSki

Raccoon Jam Host
@orbian apologies but it looks like the linux arm makefile template got mangled at some point and it was not caught before release the line

COMPILEOPTS += -m64 -O3 -Wno-deprecated-writable-strings -I Game -I /usr/include/arm-linux-gnueabihf

should have the -m64 removed from it

you should be able to edit the template in the runtime directory (on PC that will be in c:\program data\GameMakerStudio2\Cache\runtimes\runtimes-2.3.2.<num> and on Mac it will be in /Users/Shared/GameMakerStudio2/Cache/runtimes/runtime-2.3.2.<num>) within that there will be yyc/linux/makefile_armv7

We will fix that in a future update, but you should be able to fix it yourself locally

Russell
Strangely enough I am on the same gms version and I don't have this issue, my raspberry pi game compiles just fine

Edit: Oh nope I got it too
GML:
/usr/include/stdlib.h:25:10: fatal error: 'bits/libc-header-start.h' file not found
#include <bits/libc-header-start.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [makefile:42: out/pch.hpp.pch] Error 1
Removing -m64 fixed it for me
 
Last edited:

orbian

Member
@orbian apologies but it looks like the linux arm makefile template got mangled at some point and it was not caught before release the line

COMPILEOPTS += -m64 -O3 -Wno-deprecated-writable-strings -I Game -I /usr/include/arm-linux-gnueabihf

should have the -m64 removed from it

you should be able to edit the template in the runtime directory (on PC that will be in c:\program data\GameMakerStudio2\Cache\runtimes\runtimes-2.3.2.<num> and on Mac it will be in /Users/Shared/GameMakerStudio2/Cache/runtimes/runtime-2.3.2.<num>) within that there will be yyc/linux/makefile_armv7

We will fix that in a future update, but you should be able to fix it yourself locally

Russell
Thanks, that solved it.
 
Top