openssl 的链接器和编译器错误
Linker and compiler errors with openssl
我正在尝试从 github 版本 https://github.com/openssl/openssl/archive/OpenSSL-fips-2_0_13.tar.gz 构建 openssl 并尝试手动编译它。我正在尝试在 Mac OSX 版本 10.11.5 上编译它,这是我采取的一系列步骤
./Configure darwin64-x86_64-cc
make
但是我得到这个错误
bsaes-x86_64.s:580:1: error: invalid symbol redefinition
_bsaes_enc_key_convert:
当我按照INSTALL
文件正常编译时,在link这一步出现错误,估计是因为存档文件是为32位系统构建的。这是我在 运行 ./config
时收到的警告
WARNING! If you wish to build 64-bit library, then you have to
invoke './Configure darwin64-x86_64-cc' *manually*.
You have about 5 seconds to press Ctrl-C to abort.
然后 link 使用 ./config && make
步骤中的存档时的相应错误是这个
ld: warning: ld: warning: ignoring file openssl/lib/libssl.a, file was
built for archive which is not the architecture being linked (x86_64):
openssl/lib/libssl.aignoring file openssl/lib/libcrypto.a, file was built
for archive which is not the architecture being linked (x86_64):
openssl/lib/libcrypto.a
注意 我正在为一个 C++ 项目构建它,使用 C 编译器编译 C 代码并使用 C++ 编译器(或 ld
,因为两个编译器都使用与 link 代码相同 link 呃?)(不确定这是否有所不同)
有人可以告诉我如何使用 openssl 正确构建和 link 吗?
在 ./configure
期间尝试使用 no-asm
选项:
$ make clean
$ ./Configure darwin64-x86_64-cc no-asm
$ make test
$ make
....
椭圆曲线例程在这个版本中似乎被破坏了,所以也许可以提交一个关于那个的错误报告,否则它应该 compile/build 没有问题。
我正在尝试从 github 版本 https://github.com/openssl/openssl/archive/OpenSSL-fips-2_0_13.tar.gz 构建 openssl 并尝试手动编译它。我正在尝试在 Mac OSX 版本 10.11.5 上编译它,这是我采取的一系列步骤
./Configure darwin64-x86_64-cc
make
但是我得到这个错误
bsaes-x86_64.s:580:1: error: invalid symbol redefinition
_bsaes_enc_key_convert:
当我按照INSTALL
文件正常编译时,在link这一步出现错误,估计是因为存档文件是为32位系统构建的。这是我在 运行 ./config
WARNING! If you wish to build 64-bit library, then you have to
invoke './Configure darwin64-x86_64-cc' *manually*.
You have about 5 seconds to press Ctrl-C to abort.
然后 link 使用 ./config && make
步骤中的存档时的相应错误是这个
ld: warning: ld: warning: ignoring file openssl/lib/libssl.a, file was
built for archive which is not the architecture being linked (x86_64):
openssl/lib/libssl.aignoring file openssl/lib/libcrypto.a, file was built
for archive which is not the architecture being linked (x86_64):
openssl/lib/libcrypto.a
注意 我正在为一个 C++ 项目构建它,使用 C 编译器编译 C 代码并使用 C++ 编译器(或 ld
,因为两个编译器都使用与 link 代码相同 link 呃?)(不确定这是否有所不同)
有人可以告诉我如何使用 openssl 正确构建和 link 吗?
在 ./configure
期间尝试使用 no-asm
选项:
$ make clean
$ ./Configure darwin64-x86_64-cc no-asm
$ make test
$ make
....
椭圆曲线例程在这个版本中似乎被破坏了,所以也许可以提交一个关于那个的错误报告,否则它应该 compile/build 没有问题。