ssl 如何在windows上构建git?

t30tvxxf  于 2022-11-24  发布在  Windows
关注(0)|答案(6)|浏览(192)

我正在尝试从这个仓库构建Git:git-for-windows,这应该是git的最后一个版本,有特定的windows更改。我在Windows上的MinGw 32环境中工作。
我遇到了以下问题:当我尝试构建git时,我得到:

compat/mingw.h:134:25: fatal error: openssl/ssl.h: 
No such file or directory  #include <openssl/ssl.h>

为什么呢?我已经在相同的环境中从源代码安装了openssl,使用make-〉make install序列。
特别是,ssl.h被安装到/usr/local/ssl/include/openssl/ssl.h/local/ssl/include/openssl/ssl.h中。
如何解决此问题?

irlmq6kh

irlmq6kh1#

使用MinGW-w64安装MSYS2
打开Mingw64 shell,添加以下软件包:

$ pacman -Sy mingw64/mingw-w64-x86_64-openssl \
  mingw64/mingw-w64-x86_64-pcre2 \
  mingw64/mingw-w64-x86_64-zlib

克隆并构建Git(如果你还没有Git,你可以下载一个.zip

$ git clone https://github.com/git-for-windows/git.git
$ cd git
$ make
klh5stk1

klh5stk12#

目前的答案是从项目网站https://gitforwindows.org/#contribute下载“Git for Windows SDK”。
当你执行安装程序时,它会克隆SDK,并打开一个“Git for Windows SDK”提示符--据我所知,这非常接近MINGW 64提示符。
然后:

sdk cd git
sdk build

这样你就有了一个本地构建的git.exe!SDK默认安装到C:\git-sdk-64,git项目在C:\git-sdk-64\usr\src\git中创建。

qv7cva1a

qv7cva1a3#

自2015年起,您可以通过新的ci(持续集成)文件夹及其ci/run-windows-build.sh脚本(2017年3月)找到Windows构建的更完整示例。
它用在.travis.yml中,这意味着您可以将实际的构建委托给远程构建环境:是的。
这样,您就不必担心您自己的本地工作站具有或缺少依赖项。

zpf6vheq

zpf6vheq4#

首先尝试安装openssl,然后尝试构建它。也可以按照this来了解您的问题(尽管它是linux指定的)。

uwopmtnx

uwopmtnx5#

现在,它与Cygwin一起工作得最好。你需要安装它所需要的所有包,否则它会使构建失败。

pepwfjgg

pepwfjgg6#

    • 先决条件:**

管理系统2
添加到PATH:C:\msys64\usr\bin

pacman -S --needed base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-curl mingw-w64-x86_64-pcre2

添加到PATH:C:\msys64\mingw64\bin

    • 建置:**(如果建置是为了两柴,则忽略此项目)

cmd.exe

set MSYSTEM=MINGW64
make

set MSYSTEM=MINGW64和包mingw-w64-x86_64-curlmingw-w64-x86_64-pcre2是我缺少的

创建文件git/config.makgit是从https://github.com/git-for-windows/git.git克隆的存储库)

DEVELOPER=1
ifndef NDEBUG
CFLAGS := $(filter-out -O2,$(CFLAGS))
ASLR_OPTION := -Wl,--dynamicbase
BASIC_LDFLAGS := $(filter-out $(ASLR_OPTION),$(BASIC_LDFLAGS))
endif

建筑物

set MSYSTEM=MINGW64
make
    • 使用vscode调试:**
{
  "name": "(gdb) C git",
  "type": "cppdbg",
  "request": "launch",
  "program": "${workspaceFolder}\\git.exe",
  "args": [
    "rev-parse",
    "HEAD",
  ],
  "stopAtEntry": true,
  "cwd": "${workspaceFolder}",
  "environment": [],
  "externalConsole": false,
  "MIMode": "gdb",
  "setupCommands": [
    {
      "description": "Enable pretty-printing for gdb",
      "text": "-enable-pretty-printing",
      "ignoreFailures": true
    }
  ],
}

相关问题