2017-05-07 10 views
0

私はopensslライブラリをビルドしようとしています。私はGitHubのhttps://github.com/openssl/opensslからVisual Studioツールを使用してWindowsでOpenSSLをビルドしようとしたのはなぜですか?

をレポをクローニングして、今、このコマンドラインのVisual Studio 2013の「コマンドライン」を使用して:enter image description here

私は、次のコマンドを使用します。 CD C:\プログラム\のopensslの - に行きますVC-WIN64Aを設定する--prefix = C:\ Programs \ openssl-build - 実際には、このコマンドが何をしているのか分かりませんが、すべてのマニュアルに必要なことが書かれています。このコマンドは次の出力

enter image description here

とを持っている「はい、私は 『Perlは』、もちろん私がインストールされている「Perlの」

と次の(そして最後の)私はTSの書き込みコマンド、単純な "nmake"です。最後に、このコマンドの出力に「致命的なエラー」があり、インストールを続行できません。enter image description here

このように、主なエラーは「致命的なエラーです」LNK1112:モジュールマシンタイプ 'X86'がターゲットと矛盾していますマシンタイプ 'x64'」。私が知っているように、parametrマシンタイプはMicrosoft Visual Studio GUIのSolutionのプロパティで提供することができますが、コマンドラインから設定する方法はわかりません。また、opensslはMicrosoft Visual Studio Solution MS Visual Studioによる。

だから、誰かがコマンドラインからこのプロパティを設定する方法を知っているかもしれません。あるいは、このエラーはこの問題に依存せず、誰かがこの問題を解決する方法を知っているかもしれません。

私はあなたの助けを願います。さあ、皆さん、二日目私はこれを解決しようとします、あなたは私の最後のチャンスです!

+0

ビルドは64ビットですが、32ビットビルドに適したcmd.exe環境を開きました。 * IF *あなたが64ビットのOSを持っている場合は、* VS2013 x64ネイティブツールのコマンドプロンプト*が必要です。また、なぜあなたはOpenSSLの開発版をビルドしようとしていますか? –

+0

@SinanÜnür残念ながら、それは役に立たない。何も変わりません。 – Dmitrii

+1

エラーを記載してください。画像のテキストが小さすぎて読むことはできません。さらに、将来の訪問者のために検索エンジンによってテキストを索引付けすることはできません。正確なバージョンのWindowsを記述し、X86またはX64の場合は必ず含めてください。最後に、開発者プロンプトが提供しているCPUの種類を記述します。 – jww

答えて

1

ここに私がしたことがあります。 64ビットのビルドのためにまず、私は、コマンドプロンプトを開いて:

$ cl 
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.40629 for x64

その後、私はcurrent 1.1 release tarballをダウンロードしました。 OpenSSLを実際に開発していて、開発用バージョンで問題をデバッグすることができない限り、開発用バージョンを混乱させる理由はありません。この時点で

$ curl -O https://www.openssl.org/source/openssl-1.1.0e.tar.gz 
$ tar xvf openssl-1.1.0e.tar.gz 
$ cd openssl-1.1.0e 

私はあなたにも「は、私は、このコマンドはexectlyを何見当がつかない」と言ってするのではなく、やるお勧めしますINSTALLをお読みください。 INSTALLを読んだら、コマンドが実際に何をしているかを知ることができます。

$ perl Configure --prefix=%TEMP%\openssl VC-WIN64A 
$ nmake 

は、これは私にエラーを与えていないので、私は先に行って、この時点で私に

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1 
Copyright (C) Microsoft Corporation. All rights reserved. 

     set SRCTOP=. 
     set BLDTOP=. 
     set PERL=C:\opt\perl\5.24.1\bin\perl.exe 
     set OPENSSL_DEBUG_MEMORY=on 
     "C:\opt\perl\5.24.1\bin\perl.exe" ".\test\run_tests.pl" 
test\recipes\01-test_abort.t ............ ok 
test\recipes\01-test_sanity.t ........... ok 
test\recipes\01-test_symbol_presence.t .. ok 
... 
test\recipes\90-test_sslapi.t ........... ok 
test\recipes\90-test_threads.t .......... ok 
test\recipes\90-test_v3name.t ........... ok 
All tests successful. 
Files=91, Tests=433, 100 wallclock secs (0.66 usr + 0.27 sys = 0.92 CPU) 
Result: PASS

を与えた

$ nmake test 

を発行し、私は、nmake installも働いているだろう、かなり確信しています私は自分のシステム上で何かを置き換えたくなかった。

あなたはPerlやプログラミング関連の問題はありません。

+0

nmakeのテストとnmakeのインストールが、 'nmake'と同じエラーメッセージで終了します。それはあまりにも動作しません – Dmitrii

+0

これは、手順を正確に追っていないためです。 –

-1

設定スクリプトによって生成されたms\do_ms.batファイルを実行するのを忘れたと思います。

以下は、私のPCでOpenSSLを構築するために使用するスクリプトです。

前提条件:

  1. は、お使いのPC上でPerlをインストールします。私はActivePerlを使ったと思うが、どのバージョンでもうまくいくと思う。
  2. NASMをインストールします。 http://www.nasm.us/
  3. 構築に続いてbldenv.cmd

    REM ###################################### 
    REM MODIFY THESE VARIABLES BELOW TO POINT TO YOUR NASM, PERL, and VISUAL STUDIO PATHS 
    REM Base Variables 
    SET _BLD_NASM=c:\nasm\bin 
    SET _BLD_PERL=c:\perl64\bin 
    SET _BLD_VSTUDIO=c:\vstudio 
    
    REM ###################################### 
    
    
    Echo Initializing the Visual Studio Build environment 
    call %_BLD_VSTUDIO%\VC\vcvarsall.bat x86 
    
    Echo adding Perl to Path 
    set PATH=%_BLD_PERL%;%PATH% 
    
    Echo Adding NASM to Path 
    set PATH=%_BLD_NASM%;%PATH% 
    
    echo ####################################### 
    echo Build environment is ready 
    echo TO BUILD: 
    echo  perl Configure VC-WIN32 (or perl Configure debug-VC-WIN32) 
    echo  ms\do_nasm.bat 
    echo  nmake -f ms\ntdll.mak  (or nmake -f ms\nt.mak for a static lib) 
    echo ####################################### 
    

    と呼ばれるファイルに次のスクリプトを保存し、Visual Studioの

をインストールします。

  1. はきれいなコマンド・シェル・ウィンドウを開きます。 PATH環境はすでに「クリーン」で、Visual Studioは含まれていないことが望ましいです。また、環境にはLIBまたはINCLUDE値を設定しないでください。 (コマンドプロンプトでsetと入力してください。LIBまたはINCLUDEのエントリが表示されていない場合は、それでも問題ありません)。

  2. opensslソースのディレクトリに移動します。上記のbldenv.cmdスクリプトをこのディレクトリにコピーします。

    ラン(bldenv.cmd)

    が次に実行する上記のスクリプト:ms\do_nasm.bat

    が続く:nmake -f ms\ntdll.mak

それを行う必要があります。

+0

いいえ、間違った診断。 'ms \ do_ms.bat'は1.0.xビルドにのみ適用されます。彼は '1.1.1-dev'をビルドしています。間違った古い回答を返す代わりに、現在の[INSTALL](https://github.com/openssl/openssl/blob/3556b83ea2a00d0dd3e4f1ec38adb6837553e451/INSTALL#L93)を読んでください。 –

+0

次に、OPはOpenSSL 1.0.2に切り替えるだけです。 :) – selbie

関連する問題