Normalerweise verwende ich Linux-Rechner nur für die Arbeit, das sind meist ältere, aber leistungsschwächere Rechner. Ich habe tatsächlich Arch Linux auf einem leistungsfähigeren Rechner und habe beschlossen, mich daran zu versuchen, ein Spiel darauf laufen zu lassen. Ich habe mir das heruntergeladenBüromanagement 101 Demoum zu sehen, ob ich es zum Laufen bekomme. Ich habe es entpackt, bin in den Ordner gegangen und habe es ausgeführt $ chmod a+x OfficeManagement101
und dann:
$ ./OfficeManagement101
config file: /home/me/Downloads/om101-linux/config.json
jar: /home/me/Downloads/om101-linux/om101_drm_free.jar
mainClass: eu/tulevik/officemanagement101/desktop/DesktopLauncher
vmArg 0: -Xmx1G
jre: /home/me/Downloads/om101-linux/jre/lib/amd64/server/libjvm.so
Exception in thread "LWJGL Application" java.lang.ExceptionInInitializerError
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:555)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:122)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:954)
at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738)
at org.lwjgl.opengl.Display.<clinit>(Display.java:138)
... 2 more
AL lib: (EE) alc_cleanup: 1 device not closed
Nach einigem Suchen im Internet $ sudo pacman -S xorg-xrandr
wurde der Bildschirm schwarz, aber dann erhalte ich eine neue Fehlermeldung:
$ ./OfficeManagement101
config file: /home/me/Downloads/om101-linux/config.json
jar: /home/me/Downloads/om101-linux/om101_drm_free.jar
mainClass: eu/tulevik/officemanagement101/desktop/DesktopLauncher
vmArg 0: -Xmx1G
jre: /home/me/Downloads/om101-linux/jre/lib/amd64/server/libjvm.so
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
Aborted (core dumped)
Dadurch habe ich keine wirklich gute Idee, was ich als Nächstes tun soll. Ist das etwas, das ich in Linux beheben muss, ist das ein C++-Problem, ein bisschen von beidem, irgendjemand Hilfe?
Antwort1
what(): Aktivieren Sie Multithreading, um std::thread zu verwenden: Vorgang nicht zulässig
Dies bedeutet, dass das Programm (oder ein Teil davon) nicht mit der GCC- -pthread
Option verknüpft wurde, die auf die Pthreads-Implementierung in Glibc verweist.
Daskönntefunktionieren, aber die richtige Lösung besteht darin, das Programm mit der folgenden Option richtig zu erstellen -pthread
:
LD_PRELOAD=/usr/lib64/libpthread.so.0 ./OfficeManagement101