소스에서 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 예제를 빌드하고 실행하는 방법
대답은 다음에서 비롯됩니다.@Stephenharris일하다.
해당 답변을 기반으로 한 최종 버전은 다음과 같습니다.
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
라이브러리 설치 및 설정