43047


プログラミング初歩の質問で申し訳ございません。  
先日、windows10でUbuntuを用いて <https://github.com/bitcoin/bitcoin>
をクローンし,bitcoindを作成しようとしたのですがmakeの段階で以下のようなエラーが発生し、makeすることができませんでした。

[code]

    /usr/bin/ld: /usr/local/lib/libcrypto.a(cryptlib.o): relocat R_X86_64_32     against `.rodata.str1.1' can not be used when making a shared     object; recompile with -fPIC
    /usr/local/lib/libcrypto.a: error adding symbols: Bad value
    collect2: error: ld returned 1 exit status
    Makefile:3690: recipe for target 'bitcoind' failed
    
[/code]

質問内容が的を射ていないかもしれませんが、解決法並びに質問の改善についてご回答いただけますと幸いです。

追記:作業手順について（記憶の範囲で申し訳ありません）

  1. MiNGW for 64を導入 
  2. Ubutuを導入 
  3. 
[code]    sudo apt update

    sudo apt upgrade
    sudo apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git
    
[/code]

  4. 上記のgitをクローン

  5. boostlib1.6.0.tar.gzをインストール
  6. Openssl 1.0.2oをインストール
  7. berkeley db 4.8をインストール
  8. bitcoinディレクトリで`./configure`(--enable-sharedでも同様です)
  9. 同ディレクトリで`sudo make`←ここでエラーが発生しました

追記2  
configureの最後に記載されていたオプションです

[code]

    ptions used to compile and link:
      with wallet   = yes
      with gui / qt = no
      with zmq      = no
      with test     = yes
      with bench    = yes
      with upnp     = yes
      use asm       = yes
      debug enabled = no
      gprof enabled = no
      werror        = no
    
      target os     = linux
      build os      =
    
      CC            = gcc
      CFLAGS        = -g -O2
      CPPFLAGS      =  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
      CXX           = g++ -std=c++11
      CXXFLAGS      = -g -O2 -Wall -Wextra -Wformat -Wvla -Wformat-security -Wno-unused-parameter
      LDFLAGS       =
      ARFLAGS       = cr
    
[/code]


CC BY-SA 3.0
2018-04-06T07:22:31.327
43001
2018-04-08T00:08:58.167
2018-04-06T11:00:27.243
19110
27323
question
c++ windows
Bitcoindの構築につきまして


target os が linux になっているのがおかしいです。今回は Windows 向けのクロスコンパイルをすることが目的なので、ここは
windows になっているべきです。

おそらく、`bitcoin/depends` を `make` するときに `HOST=x86_64-w64-mingw32`
を指定し忘れているのではないでしょうか？ 手順としては [build-
windows.md](https://github.com/bitcoin/bitcoin/blob/048ac8326b6952244f6e4453f4f8f6ab423eb926/doc/build-
windows.md#building-for-64-bit-windows) に書かれている以下の部分です。

> Once the source code is ready the build steps are below.
[code]

>     PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic
> Windows %PATH% imported var
>     cd depends
>     make HOST=x86_64-w64-mingw32
>     cd ..
>     ./autogen.sh # not required when building from tarball
>     CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site
> ./configure --prefix=/
>     make
>  
[/code]

## 補足1

2018年4月現在の build-windows.md に従って WSL でビルドするには、一点だけ修正が必要です。MinGW-w64
をアップデートするために Ubuntu Zesty の APT リポジトリを追加していますが、Zesty のサポート期限が既に切れているため現在の

[code]

    "deb http://archive.ubuntu.com/ubuntu zesty universe"
    
[/code]

では追加できません。古いリリースを配布している

[code]

    "deb http://old-releases.ubuntu.com/ubuntu zesty universe"
    
[/code]

を使うか、新しいリリースである

[code]

    "deb http://archive.ubuntu.com/ubuntu artful universe"
    
[/code]

などを使う必要があります。

## 補足2

github.com/bitcoin/bitcoin の HEAD は、ビルドできないことがあります。安定したビルドがほしければ、適当な version
tag を checkout すれば良いです。たとえば 2018 年 4 月現在の latest release である 0.16
をビルドするには、リポジトリを clone して `cd bitcoin` した後、

[code]

    git checkout 0.16
    
[/code]

とすればよいです。


CC BY-SA 3.0
2018-04-08T00:08:58.167
43047
2018-04-08T00:08:58.167
19110
43001
answer