如何在没有 HTTPS 的情况下编译 libgit2

How to compile libgit2 without HTTPS

我正在尝试编译一个没有或有限的 libgit2 静态构建,但还没有在没有 openssl 的情况下成功编译它。

到目前为止,我最好的尝试是遵循这组命令:

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ -DBUILD_SHARED_LIBS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL=TRUE
make

但我得到了以下信息:

[ 11%] Building C object CMakeFiles/git2.dir/src/openssl_stream.c.o
/Users/raphael/src/github.com/libgit2/libgit2/src/openssl_stream.c:369:41: warning: unused parameter 'out' [-Wunused-parameter]
int git_openssl_stream_new(git_stream **out, const char *host, const char *port)
                                        ^
/Users/raphael/src/github.com/libgit2/libgit2/src/openssl_stream.c:369:58: warning: unused parameter 'host' [-Wunused-parameter]
int git_openssl_stream_new(git_stream **out, const char *host, const char *port)
                                                         ^
/Users/raphael/src/github.com/libgit2/libgit2/src/openssl_stream.c:369:76: warning: unused parameter 'port' [-Wunused-parameter]
int git_openssl_stream_new(git_stream **out, const char *host, const char *port)

然后:

[ 23%] Building C object CMakeFiles/git2.dir/src/hash/hash_generic.c.o
In file included from /Users/raphael/src/github.com/libgit2/libgit2/src/hash/hash_generic.c:10:
/Users/raphael/src/github.com/libgit2/libgit2/src/hash/hash_generic.h:13:8: error: redefinition of 'git_hash_ctx'
struct git_hash_ctx {
       ^
/Users/raphael/src/github.com/libgit2/libgit2/src/hash/hash_common_crypto.h:15:8: note: previous definition is here
struct git_hash_ctx {
       ^

显然还有很多其他人在跟进。

环境详情:

我在 MacOS X Yosemite 上,使用 Clang 或 GCC 4.9,我正在静态构建,我从 2015 年 1 月 24 日开始尝试使用标签 v0.22.1 和 master。

我正在寻找一个可以移植到 Linux / FreeBSD 的过程。

关于 openssl 流的警告无关紧要;构造函数只是 returns 一个错误,因此它不使用任何传递的参数。收拾干净就好了,但他们什么都不做。

关于重新定义的问题,您可以在PR 2820中找到解决方法。