Openssl 我可以使用git克隆后出现的文件吗?

Openssl 我可以使用git克隆后出现的文件吗?,openssl,makefile,git-clone,Openssl,Makefile,Git Clone,我试图理解一个制造问题,但我不确定到底发生了什么。我不确定我是遇到make问题还是git问题 如果我执行: $ git clone git://git.openssl.org/openssl.git openssl-git 然后我得到了似乎是OpenSSL的源文件: $ cd openssl-git $ ls ACKNOWLEDGMENTS INSTALL.VMS README demos os2 CHANGES INSTALL.W32

我试图理解一个制造问题,但我不确定到底发生了什么。我不确定我是遇到make问题还是git问题

如果我执行:

$ git clone git://git.openssl.org/openssl.git openssl-git
然后我得到了似乎是OpenSSL的源文件:

$ cd openssl-git
$ ls
ACKNOWLEDGMENTS INSTALL.VMS     README          demos       os2
CHANGES         INSTALL.W32     README.ASN1     doc         perl
CHANGES.SSLeay  INSTALL.W64     README.ECC      e_os.h      shlib
Configure       INSTALL.WCE     README.ENGINE   e_os2.h     ssl
...
这些文件看起来和我下载OpenSSL tarball并将其解包时得到的完全一样

那些文件不可用吗?不允许我对它们执行
make


我问这样一个简单问题的原因是:我打开
Configure
,修改其中一个Configure行,然后执行clean、Configure和make。Make随后失败。当我问起它时,我被告知我没有正确使用git

这里有人告诉我make没问题,而我使用git不正确(来自OpenSSL测试邮件列表):

这里有人告诉我我使用git不正确(来自堆栈溢出):

注意:我在两个问题中遇到了相同的问题,除了这个问题使用了新的克隆



我还可以将
/Configure debug-darwin64-x86\u 64-cc no-ssl2 enable-ec\u nistp\u 64\u gcc\u 128
更改为
/config no-ssl2 enable-ec\u nistp\u 64\u gcc\u 128
,结果相同。导出内核\u BITS=64确保我获得64位达尔文配置(
darwin64-x86\u 64-cc
)。

您应该能够使用该克隆执行
生成

但请注意,建议使用
/config
,而不是直接使用
配置


您可以修改
Configure
,但是您应该在之后执行
/config
,而不是
/Configure
(除非您想手动为您的操作系统配置OpenSSL)。

您是对的,问题根本不在于您对Git的使用,而在于OpenSSL Makefiles。问题是
makedclean
会删除所需的文件。运行
make dclean
后,
git status
将显示
test/
目录中的一些C文件已被删除。删除这些文件后恢复这些文件足以使其正常工作:

git checkout -- 'test/*.c'

让人反感的是,您使用Git的方式通常不建议使用(但实际上可能很常用),而且很容易导致类似的问题。不过,正如您在这里的评论中所做的那样,向其他人表明问题不在Git上的简单方法是,以一种不依赖任何有问题的Git命令的方式解释真正的问题。在这里的问题中,您已经显示了导致错误消息的确切命令,这些命令可以在
git clone
之后直接运行,无需任何进一步的用户输入。如果你在那里也这样做的话,我想你会得到更多有用的答案。

我不明白你所说的“我正在经历一次脱节”是什么意思。它向我暗示,
git clone
失败了,但是读了你剩下的问题,我认为它没有失败。你能澄清你的意思吗?“Make”你运行什么命令?你有什么错误?我认为这里的问题在于您如何运行
config
和/或
make
,而不是
git
@hvd:“我不明白您所说的‘我正在经历断开连接’是什么意思。”我被告知我没有正确使用git。但我看不出我是如何错误地使用git的。我似乎正在遭受严重的脱节。@jww哦,我现在明白你的意思了。“断开连接”这个词在这里并不常见,它通常指的是网络连接。谢谢你的澄清。我无法判断这是否会让其他人同样困惑,但如果你认为可能,你可能想改写你的问题。@jww是的,你是对的。我删除了我的评论,因为我确实看到了完全相同的错误消息,当时我尝试了您在评论中包含的完全相同的命令,没有任何本地更改。谢谢VonC。我在
config
Configure
中都遇到了相同的错误。我认为问题出在某个地方,而不是git。我很沮丧,因为我一直被告知我使用git的方式。谢谢@hvd。所以我们在同一页上:我不做签出-我使用的是来自OpenSSL的一个真正的源代码。OpenSSL与内核不同。OpenSSL有一个真正的源代码。他们的单源模型更适合subversion,但他们不使用它。@jww错误链接,这是我在文章中回答的问题。我的前半部分答案并不是你在这里问的问题,但我认为,也不是你在另一个问题中问的问题。这是您在OpenSSL邮件列表中要求的,但我不想在那里发布。:)在这里,我的回答的后半部分似乎比你的另一个SO问题更适合我,所以我很乐意保持原样。第二次尝试(使用正确的链接)。。。您想在以下位置提供答案吗?我想这就是你回答的问题。我认为即使在这种情况下,你也应该得到表扬。顺便问一下,你是如何发现“……问题是让dclean删除所需文件的”。在
dclean
之后,git差异是如此之大,它是无用的。当我试图解决这个问题时,我打开了一个错误报告@jww在没有登录的情况下是不可见的,我在那里没有帐户,但是因为我已经怀疑有不应该删除的东西被删除了(因为
dclean
的目的是删除东西),我只需要查看
git status
的输出。
git checkout -- 'test/*.c'