Защитник стека может быть отключен?
Я пытаюсь запустить первый пример в библиотеке 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. Но я знаю, что проблема с графическим процессором с неправильными командами была бы проблемой.
Ответы
Ответ 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-битная версия выведет ошибку.