Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sandbox 使用gnu autoconf,有没有一种方法可以构建到沙箱中?_Sandbox_Autoconf - Fatal编程技术网

Sandbox 使用gnu autoconf,有没有一种方法可以构建到沙箱中?

Sandbox 使用gnu autoconf,有没有一种方法可以构建到沙箱中?,sandbox,autoconf,Sandbox,Autoconf,在这种情况下,我试图构建的是GPG。基本上,我希望所有构建输出都进入我选择的子目录,而不是安装在我的实时文件系统上 设置--prefix=path/to/my/sandbox会将一个构建的输出发送到我希望的位置,但下一个构建阶段(取决于上一个构建阶段的输出)找不到该输出 例如: $ cd libgpg-error-1.37 $ ./configure --prefix=/Users/falk/GpgSandbox/usr/local $ make $ make install (succes

在这种情况下,我试图构建的是GPG。基本上,我希望所有构建输出都进入我选择的子目录,而不是安装在我的实时文件系统上

设置--prefix=path/to/my/sandbox会将一个构建的输出发送到我希望的位置,但下一个构建阶段(取决于上一个构建阶段的输出)找不到该输出

例如:

$ cd libgpg-error-1.37
$ ./configure --prefix=/Users/falk/GpgSandbox/usr/local
$ make
$ make install
  (success: all output placed in /Users/falk/GpgSandbox/usr/local/)
$ cd ../libassuan-2.5.3
$ ./configure --prefix=/Users/falk/GpgSandbox/usr/local
...
configure: error: libgpg-error was not found
$

是否有其他选项可以传递给./configure,以使其在沙箱中查找库?我应该在VM或docker容器中构建吗?

非常感谢@hyde为我指明了正确的方向。解决方案是在构建之前设置一些环境变量:

mkdir -p /Users/falk/GpgSandbox/usr/local/
export CPPFLAGS='-I/Users/falk/GpgSandbox/usr/local/include'
export LDFLAGS='-L/Users/falk/GpgSandbox/usr/local/lib'
export PATH="$PATH:/Users/falk/GpgSandbox/usr/local/bin"
cd libgpg-error-1.37/
./configure --prefix=/Users/falk/GpgSandbox/usr/local
make install
(etc.)

--prefix
只是告诉我们应该在哪里安装构建的东西。在
进行安装之前,它基本上没有效果。因此,如果要使用非标准位置的库,则需要使用
configure
script的其他选项来提供它们。尝试
/configure--help
。是;我知道前缀只是重定向构建工件。我只是想知道是否有办法告诉configure在哪里搜索所需的组件。我没有意识到configure有一个--help选项。这里有一个方法,不是特定于
configure
:它帮助了很多。执行摘要:设置
export-CPPFLAGS='-I/Users/falk/GpgSandbox/usr/local/include'
,设置
export-LDFLAGS='-L/Users/falk/GpgSandbox/usr/local/lib'
并将/Users/falk/GpgSandbox/usr/local/bin添加到您的路径中。好了,一切都很顺利。我能够用我自己构建的软件生成一个tarball,这是一个真正的安装包的次好东西。(归根结底,如果你的Mac电脑上安装了自制软件,最好直接使用它,而不是自己下载软件包,但我有自己的理由。)