2015-09-22 64 views
0

在El Capitan 10.11.1上編譯http 2.4.16時遇到OpenSSL錯誤。在MacOS上編譯http 2.4.16時出現「OpenSSL版本太舊」10.11

它正在尋找的OpenSSL版本> = 0.9.8a

checking for OpenSSL... checking for user-provided OpenSSL base directory... none 
checking for OpenSSL version >= 0.9.8a... FAILED 
configure: WARNING: OpenSSL version is too old 

默認OpenSSL的版本是0.9.8zg

$ openssl version 
OpenSSL 0.9.8zg 14 July 2015 

最後是這裏的一部分我的彙編行:

./configure --prefix=/usr/local/MyWebserver/httpd-2.4.12 \ 
--enable-ssl \ 
--with-few-things… \ 
--disable-lots-of-things… 

即使使用brew,我也不想安裝另一個openssl。

+0

當我在配置文件中修改第24800行的變量'ac_cv_openssl = yes'時,configure命令起作用。 但在製作過程中發生錯誤: '致命錯誤:'openssl/rsa.h'文件未找到' – arnaud

+0

儘管openssl版本相同,但編譯工作在10.9和10.10上,所以我猜想不同的東西來自新系統... – arnaud

回答

0

我已經找到一種方法:

  1. 將文件夾複製的/ usr/incude /從優勝美地(MacOS的10.10)到/ usr /本地/包括我的電腦/ OpenSSL的(埃爾卡皮坦MacOS的10.11 OpenSSL的)。
  2. 然後通過添加一個標誌,編譯環境變量編譯Apache gcc和g ++:-I在/ usr /本地/包括

這裏有所有我使用的變量:

ARCH="-arch x86_64 -mmacosx-version-min=10.7" 
LDFLAGS="-O3 $ARCH" 
CFLAGS="-O3 -fno-common $ARCH" 
CXXFLAGS="-O3 -fno-common $ARCH" 
CC="gcc $ARCH -I/usr/local/include" 
CXX="gcc $ARCH -I/usr/local/include" 
CPP="gcc -E" 
CXXCPP="g++ -E » 
0

其實,你只需要提供標題。 下載Openssl的源代碼here,然後複製到/ usr /本地/包括/如下,

$ sudo cp -r include/openssl /usr/local/include/ 

那麼一切都將正常工作。

+0

我無法將它複製到/ usr/lcal/include中,因爲我正在編譯一個包含Webserver的應用程序(就像MAMP一樣) – arnaud

1

對我來說,問題是通過安裝包「openssl-devel」來解決的。