2014-03-12 5 views
13

Ich versuche, das erste Beispiel in rootbeer Bibliothek auszuführen, die Sie von here finden können.Stack Guard könnte deaktiviert sein?

Das Problem ist, obwohl ich alle ihre Anweisungen befolgt, ich die folgende Meldung erhalten, wenn ich versuche, die 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's 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) 

Ich bin kein Linux Person zu laufen, so dass ich nicht verstehen wie man diesen Befehl richtig ausführt. Ich verstehe auch nicht, was sie mit dieser Nachricht meinen, denn das ist das erste Mal, dass ich GPU-Programmierung mache. Aber ich weiß, dass es ein Problem wäre, mit falschen Befehlen mit GPU zu spielen.

+0

try: sudo execstack c/usr/lib /libcuda.so – Salil

+0

@Salil Was ist, wenn wir 'execstack' nicht haben? – Geremia

+0

Bevor Sie 'execstack' oder etwas Ähnliches ausführen, überprüfen Sie, ob Sie' rootbeer' für die richtige Architektur haben. Zumindest war das das Problem für mich, wenn ich Eclipse MAT lief. –

Antwort

9

Typ: execstack --version, um zu überprüfen, ob Sie bereits execstack installiert haben.

Wenn Sie Befehl nicht gefunden Typ erhalten: sudo apt-get install execstack -y --force-yes

Typ sudo execstack -c <file> zB sudo execstack -c /usr/lib/libcuda.so

+0

Danke für die Bearbeitung, das war meine erste Antwort so leid für die Missbildung. –

+1

Ich habe das mehrere Male gemacht und es gibt mir immer noch denselben Fehler – Adrian

4

1: Überprüfen Sie execstack Version mit folgendem Befehl execstack installiert oder nicht

execstack --version 

2 zu finden: Wenn execstack nicht installiert, dann mit folgendem Befehl installieren

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

3: Nach der erfolgreichen Installation ausführen folgenden Befehl

sudo execstack -c <filepath> 

zB:sudo execstack -c /usr/lib/libjpcap.so

+0

es gibt den folgenden Fehler ** execstack: kann den ELF-Header nicht erhalten: Formatfehler: Referenz außerhalb der Datei ** –