Tôi tải xuống mã nguồn curl7.40 và tôi đã biên dịch openssl 1.0.2 mã nguồn, Bây giờ tôi muốn biên dịch curl với openssl 1.0.2.Cách biên dịch curl với openssl mới nhất
./configure --prefix=/usr/local/curl-7.40.0 --with-ssl
--with-libssl-prefix=/usr/local/openssl-1.0.2
make && make install
Sau khi cài đặt, tôi ldd thư viện curl nhưng vẫn liên kết với thư viện mặc định của hệ thống. ldd libcurl.so linux-vdso.so.1 => (0x00007fff2db2e000) libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007fafb9b6e000) librtmp.so.0 => /usr/lib/x86_64-linux-gnu/librtmp.so.0 (0x00007fafb9954000) libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fafb96f5000) libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fafb931b000) ...
CẬP NHẬT
Sau khi một số tìm kiếm, tôi sử dụng dưới lệnh để cấu hình.
./configure --prefix=/usr/local/curl-7.40.0 --with-ssl=/usr/local/openssl-1.0.2
Nhưng khi cài đặt, nó sẽ hiển thị thông tin lỗi bên dưới.
../lib/.libs/libcurl.so: undefined reference to `SSLv2_client_method'
collect2: error: ld returned 1 exit status
Hỗ trợ SSLv2 được xóa khỏi openssl 1.0.2. Bạn có thể đã bao gồm từ một phiên bản SSL và thư viện từ một phiên bản khác. Nhìn vào nhật ký biên dịch. Có cái gì đó như '-I/usr/local/openssl-1.0.2/include'? –
có, openssl loại bỏ hỗ trợ sslv2, nhưng có vẻ như libcurl vẫn còn sử dụng nó. và từ một số kết quả tìm kiếm đề xuất sửa đổi libcurl mã nguồn lib/ssluse.c để nhận xét nó, nhưng trong 7.40, tôi không tìm thấy tệp này. –
libcurl biết để phát hiện xem openssl có hỗ trợ sslv2 ở giai đoạn cấu hình hay không. Nhìn vào config.log và/hoặc config.h. –