配置安装路径:prefix = [PREFIX]未完全理解

时间:2016-05-03 07:52:07

标签: c++ path ffmpeg set prefix

我认为这只是一个普通的c ++问题:

我正在尝试使用gnu c ++编译器在Linux Fedora上编译本地版本的ffmpeg。我在以下的一堆文件夹中有源代码:

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

这是我尝试设置配置标志以将构建安装到不在此树下但在具有本地共享库的根级目录下的目标的位置:

/usr/local/

配置文件开头附近有以下部分:

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

我可能完全误解了这一点,但我认为设置一个像

这样的值
--prefix=/usr/local

--prefix=[/usr/local]

可能会起作用,但似乎没有,因为一旦./config,make&amp;&amp; make安装完成,它已经做了很多东西,但目标没有安装。在源目录中内置了很多新的可执行文件,所以可能是构建工作但我只是错误地指定了路径?同样问题的一部分是,一旦我设置了

,是否还不清楚
--prefix=[PREFIX]

正确的,我需要设置所有进一步的

--datadir, --libdir

等。或者第一个--prefix值是否足够?

上面的配置语法试图向我展示什么?

2 个答案:

答案 0 :(得分:2)

它应该是第一个--prefix=/usr/local,但要在该位置安装文件,您需要 root 权限。因此,如果您是su又名sudo,则需要更改为 root 帐户sudo user或使用sudo make install。只对 install 阶段执行此操作,不要像那样构建。

/usr/local通常是默认安装位置,因此您通常不需要指定它。通常,您只能使用--prefix安装到其他位置,例如--prefix=/opt或您的主页文件夹:--prefix=$HOME/3rdparty

顺便提一下,如果您安装到 home 文件夹中,则不需要 root 权限。

答案 1 :(得分:0)

在我的情况下, ./ configure 最终会出现警告/错误。所以--prefix =适用于默认位置(/ usr / local)。在我整理出警告/错误后,它按预期工作。