Подтвердить что ты не робот

Защитник стека может быть отключен?

Я пытаюсь запустить первый пример в библиотеке rootbeer, который вы можете найти в здесь.

Проблема в том, что, несмотря на то, что я выполнял все свои инструкции, я получаю следующее сообщение, когда пытаюсь запустить Jar

[email protected]:/home/ubuadmin/JavaJars/HelloWordGPU# java -jar HelloWorldGPU.jar
OpenJDK Client VM warning: You have loaded library /usr/lib/libcuda.so.319.37 which might have disabled stack guard. The VM will try to fix the stack guard now.
It highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Exception in thread "main" java.lang.NullPointerException
        at org.trifort.rootbeer.runtime.Rootbeer.run(Rootbeer.java:104)
        at ScalarMult.test(ScalarMult.java:13)
        at Main.main(Main.java:17)

Я не человек Linux, поэтому я не понимаю, как правильно выполнить эту команду. Я также не понимаю, что они подразумевают под этим сообщением, потому что это первый раз, когда я занимаюсь программированием на GPU. Но я знаю, что проблема с графическим процессором с неправильными командами была бы проблемой.

4b9b3361

Ответ 1

Введите execstack --version, чтобы проверить, есть ли у вас уже установлен execstack.

Если вы получите команду не найденной типа: sudo apt-get install execstack -y --force-yes

Тип sudo execstack -c <file> например, sudo execstack -c /usr/lib/libcuda.so

Ответ 2

1: Проверьте версию execstack, используя следующую команду, чтобы найти установленный execstack или нет

execstack --version

2: Если execstack не установлен, установите следующую команду

sudo apt-get install execstack -y --force-yes

3: После успешной установки выполните следующую команду

sudo execstack -c <filepath>

например: sudo execstack -c/usr/lib/libjpcap.so

Ответ 3

убедитесь, что вы сначала не запускаете 32-битный jar на 64-битной jvm

Ответ 4

Убедитесь, что вы не используете 32-битную Java. Если вы запустите java -d64, 32-битная версия выведет ошибку.