私はこれらのツールであまり経験がありませんので、私にご負担ください。ソースからSSLを使用してcurl
をビルドします。これを行うために、私はソースからOpenSSL
もコンパイルしています。ソースからのカールのビルド - SSL_CTX_set_alpn_protosへの未定義参照
OpenSSL
をビルドしてインストールすると、アーカイブが作成されます。このタールは開梱されており、curl
を建てるときに使用してください。
私はそれをやった方法がある:私はそこを去ったとき、それはOpenSSLの構築マシンのライブラリへの絶対パスが含まれているため
OpenSSLの
./config shared -fPIC --prefix="/some/path/install_dir"
make depend
make && make install
rm -rf /some/path/install_dir/lib/pkgconfig
# create tar from $prefix/bin $prefix/include $prefix/lib
pkgconfigは、削除され、これはカールを作る機械とは異なるかもしれません。私はアーカイブのものだけを使いたいと思います。 これが正しいアプローチであるかどうかはわかりません。
カール
前のステップからのアーカイブをコピーして解凍されます。その後
export LIBS='-ldl'
./configure --prefix="$(pwd)/<install_dir>" --with-ssl="<unpacked-tar>"
make && make install
しかし、中make
結果:同じ(テスト)マシンの動作上の両方のopensslとカールを構築
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_alpn_protos'
../lib/.libs/libcurl.so: undefined reference to `SSL_get0_alpn_selected'
。
openssl-1.0.2g
およびcurl-7.47.1
を使用します。何が間違っているのでしょうか?
カールのconfig.logのは、このようなコマンドをコンパイル含まれています
gcc -o conftest -O2 -Wno-system-headers -I/home/teamcity/buildAgent/work/10199cb4c61825f3/openssl-1.0.2g/include -I/home/teamcity/buildAgent/work/10199cb4c61825f3/openssl-1.0.2g/include/openssl -L/home/teamcity/buildAgent/work/10199cb4c61825f3/openssl-1.0.2g/lib conftest.c -lcrypto -lz -lrt -ldl >&5
-Iフォルダは、私が含まれるようにしたいものですので、私は、システム全体のlibsがすべきだと思います使用しないでください。
NPN
とPROT
を検索すると、結果が得られないため、ネゴシエーションは無効になりませんでした。
は、質問を編集します。 config.logから判断すると、すべて期待通りに見えます。プロトコルネゴシエーションが無効に見えない –