【发布时间】:2014-08-26 23:22:31
【问题描述】:
我正在尝试了解一个 make 问题,但我不确定发生了什么。我不确定我遇到的是 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 压缩包并解压缩时得到的一样。
那些文件不可用吗?我不能对他们执行make 吗?
我问这样一个简单问题的原因是:我打开Configure,修改其中一条配置行,然后执行清理、配置和制作。随后 make 失败。当我询问它时,我被告知我没有正确使用 git。
有人告诉我 make 没问题,但我使用 git 不正确(来自 OpenSSL 测试邮件列表):openssl-dev, link error [heartbeat_test] Error 2。
这里有人告诉我我使用 git 不正确(来自 Stack Overflow):Why does deleting a conflicted file break a project?。
注意:我在两个 SO 问题中都遇到了同样的问题,除了这个问题使用了新的克隆。
# Standard checkout
git clone git://git.openssl.org/openssl.git openssl-git
cd openssl-git
# This is a false start. A config is needed to create a Makefile
export KERNEL_BITS=64
./config
# Clean up developer checked-in cruft
make clean && make dclean
# Open Configure, find debug-darwin64-x86_64-cc, change -g2 to -g3
./Configure debug-darwin64-x86_64-cc no-ssl2 enable-ec_nistp_64_gcc_128
make depend
make
...
duplicate symbol _main in:
heartbeat_test.o
testutil.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [link_app.] Error 1
make[1]: *** [heartbeat_test] Error 2
make: *** [build_tests] Error 1
我也可以将./Configure debug-darwin64-x86_64-cc no-ssl2 enable-ec_nistp_64_gcc_128 更改为./config no-ssl2 enable-ec_nistp_64_gcc_128,结果相同。 export KERNEL_BITS=64 确保我获得 64 位 Darwin 配置 (darwin64-x86_64-cc)。
【问题讨论】:
-
我不明白您所说的“我正在遭受断开连接”的意思。它向我表明
git clone失败了,但是阅读您的其余问题,我认为没有。你能澄清一下你的意思吗? -
"Make 随后失败" 你运行什么命令?你得到什么错误?我认为这里的问题在于您如何运行
config和/或make,而不是git。 -
@hvd: “我不明白你所说的'我正在遭受断开连接'是什么意思”。 - 我被告知我没有使用 git正确。但是我看不到我是如何错误地使用 git 的。我似乎正在遭受严重的脱节。
-
@jww 哦,我明白你现在的意思了。这不是“断开连接”这个词的常见用法,它几乎总是指网络连接。感谢您的澄清。我无法判断它是否会同样让其他人感到困惑,但如果你认为可能是,你可能想改写你的问题。
-
@jww 是的,你是对的。当我尝试与您在评论中包含的完全相同的命令时确实看到完全相同的错误消息后,我删除了我的评论,而没有任何本地更改。
标签: openssl makefile git-clone