啟用多執行緒以使用 std::thread: 不允許操作

啟用多執行緒以使用 std::thread: 不允許操作

我通常只使用 Linux 機器來工作,它們往往是較舊的低功率機器。實際上,我在一台更強大的機器上安裝了 arch linux,並決定嘗試在上面運行遊戲。我下載了辦公室管理101演示看看我是否可以讓它運行。我解壓縮它,進入資料夾並運行$ chmod a+x OfficeManagement101然後:

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

我在網路上進行了一些挖掘$ sudo pacman -S xorg-xrandr,螢幕逐漸變黑,但隨後我收到了一個新錯誤:

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

這讓我不知道下一步該做什麼,這是我需要在 linux 中解決的問題嗎?

答案1

What(): 啟用多執行緒以使用 std::thread: 不允許操作

這表示程式(或其某些部分)未使用連結-pthread到 Glibc 中 Pthreads 實作的 GCC 選項進行連結。

可能有效,但真正正確的解決方案是使用以下選項正確建立程式-pthread

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

相關內容