compilation - 数组 '__curl_rule_01__' 的大小为负

标签 compilation git curl

我在尝试编译 GIT 时遇到错误。我在 Google 和 GIT 源问题/错误中搜索了类似的问题,但没有找到任何可以帮助我的东西。

最初我收到以下错误

root@teemo:/usr/src/git# make prefix=/usr install install-doc install-html install-info;
    CC http-push.o
In file included from cache.h:39:0,
                 from http-push.c:1:
/usr/include/zlib.h:34:19: fatal error: zconf.h: No such file or directory
 #include "zconf.h"
                   ^
compilation terminated.
make: *** [http-push.o] Error 1

我在 /usr/include/ 中创建了一个指向丢失文件的符号链接(symbolic link),如下所示(在我安装/编译最新/开发版本之后)

root@teemo:/usr/src/git# ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include

这让我想到了当前的问题,我对如何解决这个问题感到困惑。如果有人可以提供建议,我们将不胜感激。

root@teemo:/usr/src/git# make prefix=/usr install install-doc install-html install-info;
    CC http-push.o
In file included from /usr/include/curl/curl.h:35:0,
                 from http.h:6,
                 from http-push.c:5:
/usr/include/curl/curlrules.h:142:3: error: size of array '__curl_rule_01__' is negative
   __curl_rule_01__
   ^
/usr/include/curl/curlrules.h:152:3: error: size of array '__curl_rule_02__' is negative
   __curl_rule_02__
   ^
make: *** [http-push.o] Error 1

最佳答案

阅读 curlrules.h 中更高的部分。作为检查数据类型大小的测试的一部分,有意强制执行该错误。

 * NOTE 2
 * ------
 *
 * Some of the following compile time checks are based on the fact
 * that the dimension of a constant array can not be a negative one.
 * In this way if the compile time verification fails, the compilation
 * will fail issuing an error. The error description wording is compiler
 * dependent but it will be quite similar to one of the following:
 *
 *   "negative subscript or subscript is too large"
 *   "array must have at least one element"
 *   "-1 is an illegal array size"
 *   "size of array is negative"
 *
 * If you are building an application which tries to use an already
 * built libcurl library and you are getting this kind of errors on
 * this file, it is a clear indication that there is a mismatch between
 * how the library was built and how you are trying to use it for your
 * application. Your already compiled or binary library provider is the
 * only one who can give you the details you need to properly use it.

您构建的 libcurl 版本使用的选项与您在当前 git 构建中使用的选项不同。 (可能是 32 位与 64 位)

了解您所在的平台和您的构建选项可能足以帮助其他人解决问题。如果这是常见情况,并且您使用的是 Linux 或其他受支持的平台,那么使用 native 软件管理安装预构建的二进制文件会更容易。 Git downloads

关于compilation - 数组 '__curl_rule_01__' 的大小为负,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35181744/

相关文章:

c - 为什么必须链接C 中的数学库?

git - merge (无分支)到 master

git - 如何删除除当前文件之外的任何内容的 Git 历史记录

git - 安装了两个版本的git,目前使用旧版本,如何切换?

http - 如何使 curl 发布一个参数,从文件中读取它的值?

c++ - Telegram编译过程:No rule to make target '/usr/lib/libicutu.a'

php - 是否可以将 HHVM 字节码存储为文件?

c++ - 如何在 Ubuntu 中使用 Visual Studio Code 编译 C++ 代码?

ssl - pem 证书中的私钥是如何加密的?

PHP Curl - Cookies 问题