如何在OS X上直接为OpenSSL构建输出

时间:2016-09-30 13:00:37

标签: macos makefile openssl

我正在OS X上构建OpenSSL。我想将构建的库(libcrypto.alibssl.a等)引导到我选择的目录中。目前它们被放在当前的工作目录中。

我该如何做到这一点?

这就是我正在做的事情。我认为指定openssldir选项的目录可能会这样做,但它没有。

./Configure darwin64-x86_64-cc --openssldir=my-dir
make

2 个答案:

答案 0 :(得分:2)

  

我想将构建的库(libcrypto.a,libssl.a等)指向我选择的目录。目前它们被放在当前的工作目录中。

OpenSSL 1.1.0可以构建树内或树外。 OpenSSL 1.0.2在树中构建。在这两种情况下,所有工件都在OpenSSL根目录中。它有效地硬编码到脚本中(其中有两个或三个相互作用)。

通过使用make install进行构建,将它们放在您选择的目录中。如果你只关心库(libcrypto.a,libssl.a),那么手动cp

如果需要,您可以使用以下内容找到工件:

find . -name 'libssl*'
find . -name 'libcrypto*'
find . -name '*\.o'

还有一些关于何时使用--prefix=XXX以及何时使用--openssldir=XXX的规则。它取决于OpenSSL版本号和make make installmake install_sw等配方。有关详细信息,请参阅OpenSSL wiki上的Compilation and Installation

答案 1 :(得分:0)

如果您需要将OpenSSL输出重定向到您的特定目录,则需要执行如下配置脚本:

$ ./configure darwin64-x86_64-cc --prefix=/Users/username/mydir --openssldir=/Users/username/mydir/ssl

其中“用户名”是您的用户名。在此示例中,输出将执行到“〜/ mydir”目录中。在这里:

--prefix option sets the output directory
--openssldir option sets the ssl settings directory