2016-03-22 8 views
1

全体エラーは次のとおりです: "序数112はダイナミックリンクライブラリD:\ GNU-Cコンパイラ\ GNUstep \ bin \ openssl.exe ""序数112をダイナミックリンクライブラリに配置できませんでした..."

私は役に立たない解決策をウェブ上でたくさん探してきました。私は最近OpenSSLを使って暗号化を始めましたが、インストールの過程で私はテスト用に複数の異なるバージョンのソフトウェアをインストールしましたが、これらの他のバージョンを削除すると、適切なアンインストール手順を実行する代わりにフォルダを削除しましたdllはWindowsのシステムディレクトリにあるので、これらの複数のdllは保持されていました)。したがって、これらの余分なdllは問題のソース(多分)だと思いますが、簡単にそれらをアンインストールする方法が見つからないため、この問題に対する合理的な解決策を求めています。

「序数112がダイナミックリンクライブラリに配置することができませんでした...」
+0

はい、これはDLLとのバージョンが一致していないことを意味します。おそらく、静的にリンクされたバージョンを手に入れたり、正しいバージョンのDLLをそれと同じディレクトリに置くことは可能でしょうか? – Rup

+0

hello Rup、私はOpenSSLプログラムを再インストールすることで動作させることができましたが、代わりにddlをWindowsのシステムディレクトリではなくローカルのbinフォルダに保存しました – DiscreteTomatoes

答えて

-1

私は、OpenSSL 1.0.2からそのSSLv23_server_methodまたはBN_MONT_CTX_freeを推測しています。 OpenSSL 1.1.0のRSA_PSS_PARAMS_freeまたはSSL_CONF_CTX_clear_flagsです。最近のいくつかの変更に基づいて、私はOpenSSL 1.0.2とSSLv23_server_methodを推測しています。

# OpenSSL 1.1.0 
$ find $PWD -type f -iname '*.num' -exec grep " 112" {} \; 
RSA_PSS_PARAMS_free      112 1_1_0 EXIST::FUNCTION:RSA 
SSL_CONF_CTX_clear_flags    112 1_1_0 EXIST::FUNCTION: 
... 

# OpenSSL 1.0.2 
$ find $PWD -type f -iname '*.num' -exec grep " 372" {} \; 
BN_MONT_CTX_free      112 EXIST::FUNCTION: 
SSLv23_server_method     112 EXIST::FUNCTION:RSA 
... 

あなたはdumpbinまたはDependency Walkerを使用して、それを確認する必要があります。スタックオーバーフローのHow can I find the exported function name from ordinal (export by ordinal)?も参照してください。


序は<openssl src>\util\mkdef.plを使用して作成されます。 OpenSSLのGitHubの存在からソースコードを見ることができます。 Here is 1.0.2およびhere is 1.1.0。ここで

は、ファイルの先頭のコメントです:

#!/usr/local/bin/perl -w 
# 
# generate a .def file 
# 
# It does this by parsing the header files and looking for the 
# prototyped functions: it then prunes the output. 
# 
# Intermediary files are created, call libcrypto.num and libssl.num, 
# The format of these files is: 
# 
# routine-name nnnn vers info 
# 
# The "nnnn" and "vers" fields are the numeric id and version for the symbol 
# respectively. The "info" part is actually a colon-separated string of fields 
# with the following meaning: 
# 
# existence:platform:kind:algorithms 
# 
# - "existence" can be "EXIST" or "NOEXIST" depending on if the symbol is 
# found somewhere in the source, 
# - "platforms" is empty if it exists on all platforms, otherwise it contains 
# comma-separated list of the platform, just as they are if the symbol exists 
# for those platforms, or prepended with a "!" if not. This helps resolve 
# symbol name variants for platforms where the names are too long for the 
# compiler or linker, or if the systems is case insensitive and there is a 
# clash, or the symbol is implemented differently (see 
# EXPORT_VAR_AS_FUNCTION). This script assumes renaming of symbols is found 
# in the file crypto/symhacks.h. 
# The semantics for the platforms is that every item is checked against the 
# environment. For the negative items ("!FOO"), if any of them is false 
# (i.e. "FOO" is true) in the environment, the corresponding symbol can't be 
# used. For the positive itms, if all of them are false in the environment, 
# the corresponding symbol can't be used. Any combination of positive and 
# negative items are possible, and of course leave room for some redundancy. 
# - "kind" is "FUNCTION" or "VARIABLE". The meaning of that is obvious. 
# - "algorithms" is a comma-separated list of algorithm names. This helps 
# exclude symbols that are part of an algorithm that some user wants to 
# exclude. 
-1

は、OpenSSL 1.0.2gを使用して同じ問題を抱えていた - 不足している機能は「SSLv2_client_method」(113だった、行方不明序メッセージがオフすることによってのようです-1)。

1.0.2fと1.0.2gの間での変更点[2016年3月1日]

  • 無効にSSLv2のデフォルトのビルド、デフォルトの交渉と弱い暗号。 SSLv2はビルド時にデフォルトで無効になっています。 "enable-ssl2"で構成されていないビルドはSSLv2をサポートしません。