2016-05-03 26 views
1

Ich denke, das ist einfach ein allgemeiner C++ Frage:konfiguriert Pfad installieren: prefix = [PREFIX] nicht vollständig verstanden

Ich bin versucht, eine lokale Version von ffmpeg auf Linux Fedora zu kompilieren mit der GNU C++ Compiler. Ich habe Quellcode in einem Haufen von Ordnern unter:

~/<username>/Downloads/Code/ffmpeg_sources/ 

das ist, wo ich bin versucht, den Config-Flags, um den Build zu einem Ziel nicht unter diesem Baum zu installieren, aber an einem Wurzelverzeichnisebene mit lokalen gemeinsamen Bibliotheken:

/usr/local/ 

Es ist dies am Anfang der Konfigurationsdatei folgenden Abschnitt:

Standard options: 

--prefix=PREFIX   install in PREFIX [] 
--bindir=DIR    install binaries in DIR [PREFIX/bin] 
--datadir=DIR   install data files in DIR [PREFIX/share/ffmpeg] 
--docdir=DIR    install documentation in DIR [PREFIX/share/doc/ffmpeg] 
--libdir=DIR    install libs in DIR [PREFIX/lib] 
--shlibdir=DIR   install shared libs in DIR [PREFIX/lib] 
--incdir=DIR    install includes in DIR [PREFIX/include] 
--mandir=DIR    install man page in DIR [PREFIX/share/man] 
--enable-rpath   use rpath to allow installing libraries in paths 
          not part of the dynamic linker search path 

ich völlig das falsch verstanden haben, aber ich dachte, th Wert wie

--prefix=/usr/local 

oder

--prefix=[/usr/local] 

könnte bei Einstellung arbeiten, aber es scheint nicht so, sobald die ./config zu, installieren & & make machen abgeschlossen ist, es ein paar getan hat Sachen, aber am Ziel ist nichts installiert. Es gibt eine Menge neuer ausführbarer Dateien, die im Quellverzeichnis erstellt wurden, also funktioniert der Build wahrscheinlich, aber ich gebe die Pfade einfach falsch an? Ein Teil des gleichen Problems ist, dass es unklar, ob, wenn ich die

--prefix=[PREFIX] 

richtig eingestellt habe, habe ich alle weiteren

--datadir, --libdir 

usw. oder ob die erste festlegen müssen - Präfixwert ist genug?

Was versucht die obige Konfigurationssyntax zu zeigen?

Antwort

1

Es sollte der erste sein --prefix=/usr/local, aber um Dateien an diesem Ort zu installieren, benötigen Sie root Privilegien. Sie müssen also entweder zum root Konto su wechseln oder sudo verwenden, wenn Sie ein sudo user aka sudo make install sind. Tun Sie das nur für die Installation Phase, nicht so bauen.

Auch /usr/local ist in der Regel die Standard Installationsort, so dass Sie normalerweise nicht angeben müssen. Normalerweise verwenden Sie nur --prefix, um an einem anderen Ort wie --prefix=/opt oder Ihrem Haus Ordnern zu installieren: --prefix=$HOME/3rdparty.

Übrigens, wenn Sie in Ihrem Hause Ordner installieren werden Sie nicht root Privilegien benötigen.

+0

oh! Danke dafür: 0) Mir ist es nicht besonders wichtig, wo der lokale Build geht. Ich mache es, um Audacity gegen diese spezifischen ffmep-Bibliotheken zu kompilieren. Ich habe gelesen/mir wurde gesagt, dass Audacity nach/usr/local suchen würde ... vermutlich ist das dann der Standard für die meisten Dinge? Wird es erneut mit der Marke versuchen. Nochmals vielen Dank: 0) – whatshisface

Verwandte Themen