Ich versuche, eine Demo zum Schreiben von PCM auf das I 2 S zu bringen. Ich habe ein kleines Demo-Programm erstellt, das beim Ausführen mit dem folgenden Befehl einen Fehler ausgibt./demo stereo_small.wav
can't open /dev/mem
Ich starte also mit diesem Befehl sudo ./demo stereo_small.wav
(hinzugefügt sudo
) und die Demo sollte nun erfolgreich mit erhöhten Berechtigungen ausgeführt werden können.
Aber ich bekomme jetzt diesen Fehler:
./demo: error while loading shared libraries: libsndfile.so.1: cannot open shared object file: No such file or directory
Um das Programm zum Laufen zu bringen, musste ich diesen Befehl zunächst ausführen export LD_LIBRARY_PATH=/usr/local/lib
, damit er funktioniert, und jetzt ist der Fehler zurückgekehrt, aber nur, wenn ich dem Befehl das Präfix vorstellesudo
Bitte nackt mit mir Ich benutze C & Linux erst seit ein paar Stunden!
Folgendes habe ich getan, um zu kompilieren und auszuführen:
gcc `pkg-config --cflags sndfile` -c demo.c
gcc 'pkg-config --libs sndfile' demo.o -o demo
sudo ./demo stereo_small.wav
Update - Ursache: Einige Umgebungsvariablen werden im SU-Kontext nicht verwaltet (siehe hier)
libsndfile
es dort ist, wo du denkst? Überprüfen Sie dieses Verzeichnis. Überprüfen Sie auch die Ausgabe von echo $LD_LIBRARY_PATH
Übereinstimmungen.
/dev/mem
?
linux
Tag ist wahrscheinlich redundant. Es wäre besser, wenn Sie stattdessen Ihre Distribution bereitstellen würden (wahrscheinlich Debian).