了解标志设置

时间:2018-03-02 13:13:27

标签: linux bash ubuntu environment-variables variable-expansion

我正在尝试安装BerkeleyDB STL。 我运行以下代码来下载n安装相同的

curl -OL http://download.oracle.com/berkeley-db/db-6.2.23.NC.tar.gz
tar xf db-6.2.23.NC.tar.gz
cd db-6.2.23.NC/build_unix
../dist/configure --prefix=$HOME --enable-stl
make
make install

然后为了进一步安装我的应用程序,我需要告诉R哪里是BerkeleyDB STL,我按手册所述的那样做了:

CPPFLAGS=-I${HOME}/include
LDFLAGS=-L${HOME}/lib -Wl,-rpath=${HOME}/lib

但是在运行第二个命令时出现以下错误:

bash: -Wl,-rpath=/home/mayankmodi/lib: No such file or directory

即使目录结构是

.
├── bin
├── env
├── include
├── lib
└── Videos
*I have deleted most of my folders to make it easy to spot lib directory

问题:我需要了解

的含义
LDFLAGS=-L${HOME}/lib -Wl,-rpath=${HOME}/lib

1 个答案:

答案 0 :(得分:2)

该行

const { registerRoutes } = require('bottender/express');

/* register bottender/express route */
registerRoutes(server, bots.messenger, messenger.server); // needs to be declared first before error handler
/* Error Handling */
app.use(errorController.error404);
app.use(errorController.generalError);
展开LDFLAGS=-L${HOME}/lib -Wl,-rpath=${HOME}/lib 变量的

变为

HOME

被解释为接近

的东西
LDFLAGS=-L/home/mayankmodi/lib -Wl,-rpath=/home/mayankmodi/lib [rest of actual command]

即。 Bash将文本EnvironmentVariable=Value command line ... 解释为可执行文件的命令或路径的开头,并尝试使用环境变量设置-Wl,-rpath=/home/mayankmodi/lib运行它,因为没有这样的命令或程序而失败。

要解决此问题,您可以用双引号将值赋予LDFLAGS=-L/home/mayankmodi/lib

LDFLAGS

以便LDFLAGS="-L${HOME}/lib -Wl,-rpath=${HOME}/lib" 扩展为所需的文字。