将 CFLAGS 和 LDFLAGS 添加到“配置”的正确语法是什么?

use*_*229 52 compiling configure

我希望使用 OpenVPN 源 tarball 在 OpenBSD 5.5 上安装 OpenVPN。

根据这里的说明,我必须安装lzo

CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" 指令添加到“配置”,因为gcc否则将找不到它们。

我已经广泛搜索了有关如何在 OpenBSD 上执行上述操作的指南,但没有。

这是我打算做的:

  1. 将源 tarball 解压到新创建的目录
  2. 发出命令
    ./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 发出命令 make
  4. 发出命令 make install

以下哪个语法是正确的?

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)

或者

./configure --CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)

或者

./configure --CFLAGS="-I/usr/local/include" --LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)

vin*_*c17 53

正确的方法是:

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)

但这可能不适用于所有configure脚本。最好设置环境变量,例如CPATHLIBRARY_PATH(参见gcc手册页)。

一个例子:

export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib
Run Code Online (Sandbox Code Playgroud)

.profile例如,在您的. 该LD_LIBRARY_PATH可需要共享库的情况下,如果不使用运行路径(这取决于操作系统,构建工具和所使用的选项,但它不应该伤害)。


小智 9

第一个语法是正确的。

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)

但是,强烈建议使用二进制文件,packages(7)或者,如果出于某种原因您绝对需要从源代码构建,请使用ports(7)基础架构,如常见问题解答部分 15 所述

按照常见问题中的详细说明设置端口树。然后查找openvpn端口:

cd /usr/ports
make search key=openvpn
Run Code Online (Sandbox Code Playgroud)

这将输出一些包含术语 的端口openvpn。其中之一是openvpn-2.3.2使用 path net/openvpn

cd net/openvpn
sudo make install clean
Run Code Online (Sandbox Code Playgroud)

这样做的好处是lzo2可以正确安装依赖项(仅在此处)而不会破坏您的系统,并且您将获得有关如何openvpn在 OpenBSD上使用的附加说明。