ソースからlibcurlをインストールしようとしていますが、実行可能configure
ファイルがないため実行できません./configure
。どのように生成しますか?
私の試みは次のとおりです。
time git clone https://github.com/curl/curl.git
cd curl
./configure
make
sudo make install
./configure
リポジトリにこのファイルがないため、ブロックされました。
私の参考資料:
GitHubリポジトリに役立つようないくつかのファイルがありますが、どうすればいいかわかりません。
configure.ac
curl-config.in
私もこれを試しましたが、さまざまなエラーが報告されました。
望むより:https://earthly.dev/blog/autoconf/
aclocal
autoconf
automake --add-missing
time ./configure --with-openssl --with-gnutls
答え1
curl
cmake
(cmake2ではなくcmake3)を使用して設定するように設計されています。
だから
git clone https://github.com/curl/curl.git
cd curl
cmake .
make
生成されたファイルは./src/curl
答え2
curl
libcurlのビルドを含む最初からビルドする方法cmake
とそれを使用してCの例をビルドして実行する方法
答えは以下から来ています。ツイート働く
その答えに基づいた最終バージョンは次のとおりです。
time git clone https://github.com/curl/curl.git
cd curl
mkdir -p build
cd build
time cmake .. # takes ~20 sec
time make # takes ~11 sec
time sudo make install # takes < 1 sec
cd ../.. # go back up to the same level as where the `curl` dir is
動的.so共有ライブラリが必要な実行可能ファイルを実行するたびに、ローダが自動的に動的.so共有ライブラリをロードするようにパスをLD_LIBRARY_PATH
含めるように変数を更新します。curl/build/lib
望むより:https://stackoverflow.com/a/37558191/4561887そしてhttps://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html:
echo "export LD_LIBRARY_PATH=\"$(pwd)/curl/build/lib:\$LD_LIBRARY_PATH\"" >> ~/.bashrc
. ~/.bashrc # re-source it
これで、共有libcurl.so
オブジェクトの動的ライブラリ/usr/local/lib/libcurl.so
はとにcurl/build/lib/libcurl.so
ありcurl
、実行可能ファイルはにありますcurl/build/src/curl
。
これで、サンプルをビルドして実行できます。たとえば、次のようになります。curl/docs/examples/10-at-a-time.c
、このように:
time ( \
time g++ -Wall -Wextra -Werror -O3 -std=c++17 \
curl/docs/examples/10-at-a-time.c \
-lcurl \
-o bin/a \
&& time bin/a \
)
gcc
しかし、修正はC++ではなくCでサンプルをビルドする必要があるということですg++
(最初の例も少なくともC++でビルドして実行します)。
最終回答:
time ( \
time gcc -Wall -Wextra -Werror -O3 -std=c17 \
curl/docs/examples/10-at-a-time.c \
-lcurl \
-o bin/a \
&& time bin/a \
)
実行と出力の例:
eRCaGuy_hello_world/cpp$ time ( \
> time g++ -Wall -Wextra -Werror -O3 -std=c++17 \
> curl/docs/examples/10-at-a-time.c \
> -lcurl \
> -o bin/a \
> && time bin/a \
> )
real 0m0.139s
user 0m0.085s
sys 0m0.024s
R: 0 - No error <https://www.ibm.com>
R: 0 - No error <https://www.iana.org>
R: 0 - No error <https://www.oracle.com>
R: 0 - No error <https://www.amazon.com>
R: 0 - No error <https://www.google.com>
R: 0 - No error <https://www.ripe.net>
R: 0 - No error <https://www.mysql.com>
R: 0 - No error <https://www.netcraft.com>
R: 0 - No error <https://www.mozilla.org>
R: 0 - No error <https://www.yahoo.com>
R: 0 - No error <https://opensource.org>
R: 0 - No error <https://www.ca.com>
R: 0 - No error <https://www.chip.de>
R: 0 - No error <https://www.hp.com>
R: 0 - No error <https://www.wikipedia.org>
R: 0 - No error <https://www.cnn.com>
R: 0 - No error <https://www.dell.com>
R: 0 - No error <https://www.mit.edu>
R: 0 - No error <https://www.playstation.com>
R: 0 - No error <https://www.apple.com>
R: 0 - No error <https://www.symantec.com>
R: 0 - No error <https://www.uefa.com>
R: 0 - No error <https://www.ebay.com>
R: 0 - No error <https://www.ieee.org>
R: 0 - No error <https://www.fujitsu.com/global/>
R: 0 - No error <https://www.supermicro.com>
R: 0 - No error <https://www.hotmail.com>
R: 0 - No error <https://www.nist.gov>
R: 0 - No error <https://www.cert.org>
R: 0 - No error <https://www.zdnet.com>
R: 0 - No error <https://www.cnet.com>
R: 0 - No error <https://www.ietf.org>
R: 0 - No error <https://news.google.com>
R: 0 - No error <https://www.bbc.co.uk>
R: 0 - No error <https://www.usatoday.com>
R: 0 - No error <https://www.foxnews.com>
R: 0 - No error <https://www.wired.com>
R: 0 - No error <https://www.sky.com>
R: 0 - No error <https://www.cbs.com>
R: 0 - No error <https://slashdot.org>
R: 0 - No error <https://www.msn.com>
R: 0 - No error <https://www.un.org>
R: 0 - No error <https://apache.org>
R: 0 - No error <https://www.nbc.com/>
R: 0 - No error <https://www.informationweek.com>
R: 0 - No error <https://www.heise.de>
R: 0 - No error <https://www.microsoft.com>
real 0m10.476s
user 0m0.892s
sys 0m0.096s
real 0m10.615s
user 0m0.978s
sys 0m0.121s
さらに一歩進んでください。
- ここでReadmeで私が学んだ内容の詳細を見ることができます。C
curl
ライブラリのインストールと設定