Aktivieren Sie Multithreading, um std::thread zu verwenden: Vorgang nicht zulässig

Aktivieren Sie Multithreading, um std::thread zu verwenden: Vorgang nicht zulässig

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 OfficeManagement101und 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-xrandrwurde 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- -pthreadOption 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 

verwandte Informationen