2016-09-30 60 views
1

我正在OS X上構建OpenSSL。我想將構建的庫(libcrypto.a,libssl.a等)指向我選擇的目錄。目前他們被放在當前的工作目錄中。如何在OS X上指定OpenSSL的構建輸出

我該如何做到這一點?

這就是我正在做的。我認爲指定openssldir選項的目錄可能會這樣做,但它不會。

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

我想你會想要使用'--prefix'選項,除了'--openssldir'。對於我的本地OpenSSL在OSX上構建,我使用:'CC = gcc ./Configure darwin64-x64_64-cc --prefix =/path/to/my/dir --openssldir =/path/to/my/dir'。請注意,'CC = gcc'環境變量對於更新的OpenSSL構建可能需要的'make depend'步驟非常有用。 – Castaglia

回答

1

我想直接內置庫(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 installmake install_sw。有關詳細信息,請參閱OpenSSL wiki上的Compilation and Installation

+0

'find。 -name'./libssl *''不會列出任何內容。但是,'發現。 -name'libssl *''列出'。/ libssl.a'和'。/ libssl.pc'。 'libcrypto'也一樣。 – ksl

+0

@ksl - 我的壞...我不知道爲什麼我把它們放在那裏。我經常運行這些命令並且更好地瞭解... – jww