Habilite multithreading para usar std::thread: Operação não permitida

Habilite multithreading para usar std::thread: Operação não permitida

Eu normalmente só uso máquinas Linux para trabalhar, elas tendem a ser máquinas mais antigas e com pouca potência. Na verdade, eu tenho o Arch Linux em uma máquina mais robusta e decidi tentar rodar um jogo nela. eu baixei odemonstração de gerenciamento de escritório 101para ver se conseguia fazê-lo funcionar. Descompactei, entrei na pasta e executei $ chmod a+x OfficeManagement101e então:

$ ./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

Algumas pesquisas na Internet me fizeram fazer $ sudo pacman -S xorg-xrandr, a tela escurece, mas recebo um novo erro:

$ ./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)

O que me deixa sem uma boa ideia do que fazer a seguir, isso é algo que preciso consertar no Linux, é um problema de c++ um pouco de ambos, alguma ajuda?

Responder1

what(): Habilite multithreading para usar std::thread: Operação não permitida

Isso significa que o programa (ou parte dele) não foi vinculado usando a -pthreadopção do GCC que vincula à implementação do Pthreads no Glibc.

Essepoderfunciona, mas realmente a solução correta é o programa ser construído corretamente com a -pthreadopção:

LD_PRELOAD=/usr/lib64/libpthread.so.0 ./OfficeManagement101 

informação relacionada