我在尝试编译GIT时遇到了错误。我搜索了谷歌和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/
内创建了一个符号链接,如下所示(在我安装/编译最新/开发版本之后)
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
答案 0 :(得分:8)
在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或其他受支持的平台,那么使用本机软件管理安装预构建的二进制文件会更容易。 Git downloads
答案 1 :(得分:0)
如果系统报告__curl_rule_01__
或__curl_rule_02__
为否定,请对/usr/include/curl/curlbuild.h
进行以下更改:
添加以下行:
define CURL_SIZEOF_LONG 4
define CURL_SIZEOF_CURL_OFF_T 4
(或者,如果已经定义了类似的行,则替换相似的行)