如何从源代码构建 libcurl?

Mik*_*ynn 10 compiling

我一直在尝试从 git 源安装libcurl。但是,当我 cd 进入存储库并运行时,./configure我不断收到此错误:

[*****@****** bagder-curl-f0d611d]$ ./configure
-bash: ./configure: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我做了一些谷歌搜索。我在工作,我不是系统管理员,这有什么关系吗?我宁愿不与我们的系统管理员讨论这个问题,因为他是一个相当不愉快的人,通常不愿意提供帮助。

似乎确实有一个配置文件:

$ls
acinclude.m4   CMakeLists.txt     GIT-INFO        MacOSX-Framework     mkinstalldirs  tests
Android.mk     configure.ac       include         Makefile             packages       TODO-RELEASE
buildconf      COPYING            install-sh      Makefile.am          perl           vc6curl.dsw
buildconf.bat  CTestConfig.cmake  lib             Makefile.dist        README         winbuild
CHANGES        curl-config.in     libcurl.pc.in   Makefile.msvc.names  RELEASE-NOTES
CHANGES.0      curl-style.el      log2changes.pl  maketgz              sample.emacs
CMake          docs               m4              missing              src
Run Code Online (Sandbox Code Playgroud)

Jor*_*tro 11

您在此处的权限无关紧要,您收到该错误的原因是它找不到该configure文件。

在这种情况下,curl 包含一个buildconf文件来为您准备。我通过执行以下步骤成功编译了它。

首先,我确保我拥有构建 curl 所需的一切:

sudo apt-get build-dep curl
Run Code Online (Sandbox Code Playgroud)

然后我运行以下命令来构建它:

buildconf
./configure
make
sudo make install 
Run Code Online (Sandbox Code Playgroud)

这会将库放在 /usr/local/

  • 不应该是`./buildconf`吗? (5认同)

Tim*_*uck 6

查看源代码,libcurl 似乎可以同时使用 cmake 和 autotools。Cmake 最简单:

cmake .
Run Code Online (Sandbox Code Playgroud)

创建构建文件,然后

make
sudo make install
Run Code Online (Sandbox Code Playgroud)

就像你习惯的那样。

作为参考,以下是如何使用自动工具。git checkout 包含configure脚本的情况并不常见。您应该期待一个autogen.sh脚本(它会为您创建并调用configure),或者如果失败:

autoreconf --install
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

这两种方法似乎都适用于 libcurl。