配置安装路径:prefix=[PREFIX] 不完全理解
Configuring install path: prefix=[PREFIX] not fully understood
我认为这只是一个一般的 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&&make install 完成,它已经完成了很多工作,但目标没有安装任何东西。源目录中内置了很多新的可执行文件,所以大概构建工作正常,但我只是错误地指定了路径?同一问题的一部分是不清楚是否,一旦我设置了
--prefix=[PREFIX]
正确,我需要进一步设置所有
--datadir, --libdir
等或者第一个 --prefix 值是否足够?
上面的配置语法试图告诉我什么?
它应该是第一个 --prefix=/usr/local
但要在该位置安装文件您需要 root 权限。因此,您需要更改为 root 帐户 su
,或者如果您是 sudo user
又名 sudo make install
,则使用 sudo
。仅在 install 阶段执行此操作,不要那样构建。
此外,/usr/local
通常是 默认 安装位置,因此您通常不需要指定它。通常你只使用 --prefix
安装到不同的位置,如 --prefix=/opt
或你的 home 文件夹:--prefix=$HOME/3rdparty
.
顺便说一下,如果您安装到 home 文件夹中,您将不需要 root 权限。
在我的情况下,./configure
以 warning/error 结尾,因此 --prefix=
使用默认位置 (/usr/local
)。在我整理出 warning/error 后,它按预期工作。
我认为这只是一个一般的 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&&make install 完成,它已经完成了很多工作,但目标没有安装任何东西。源目录中内置了很多新的可执行文件,所以大概构建工作正常,但我只是错误地指定了路径?同一问题的一部分是不清楚是否,一旦我设置了
--prefix=[PREFIX]
正确,我需要进一步设置所有
--datadir, --libdir
等或者第一个 --prefix 值是否足够?
上面的配置语法试图告诉我什么?
它应该是第一个 --prefix=/usr/local
但要在该位置安装文件您需要 root 权限。因此,您需要更改为 root 帐户 su
,或者如果您是 sudo user
又名 sudo make install
,则使用 sudo
。仅在 install 阶段执行此操作,不要那样构建。
此外,/usr/local
通常是 默认 安装位置,因此您通常不需要指定它。通常你只使用 --prefix
安装到不同的位置,如 --prefix=/opt
或你的 home 文件夹:--prefix=$HOME/3rdparty
.
顺便说一下,如果您安装到 home 文件夹中,您将不需要 root 权限。
在我的情况下,./configure
以 warning/error 结尾,因此 --prefix=
使用默认位置 (/usr/local
)。在我整理出 warning/error 后,它按预期工作。