Ubuntu

帶有 SX 工具的 Ubuntu 14 LTS 安裝問題

  • November 11, 2014

我正在嘗試按照安裝說明 ( <http://sx.dyne.org/introduction.html#installation> )使用 Ubuntu 14 LTS安裝 SX ( <http://SX.dyne.org> ) 工具。

  1. 我使用wget將 SH 腳本下載到 root,然後…
  2. 安裝sudo bash ./install-sx.sh

到目前為止一切順利(為簡潔起見編輯了終端視窗輸出,即如果安裝看起來不錯,則開始):

checking for CURL... yes
checking for libsecp256k1... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/bitcoin/Makefile
config.status: creating src/Makefile
config.status: creating libbitcoin.pc
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --with-libsecp256k1
Making all in include/bitcoin
make[1]: Entering directory '/usr/local/src/libbitcoin-git/include/bitcoin'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/usr/local/src/libbitcoin-git/include/bitcoin'
Making all in src
make[1]: Entering directory '/usr/local/src/libbitcoin-git/src'
 CXX      utility/ec_keys.lo
utility/ec_keys.cpp: In function 'libbitcoin::ec_point libbitcoin::secret_to_public_key(const ec_secret&, bool)':
utility/ec_keys.cpp:66:23: error: 'secp256k1_ecdsa_pubkey_create' was not declared in this scope
            compressed))
                      ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_public_key(const ec_point&)':
utility/ec_keys.cpp:75:78: error: 'secp256k1_ecdsa_pubkey_verify' was not declared in this scope
    return secp256k1_ecdsa_pubkey_verify(public_key.data(), public_key.size());
                                                                             ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_private_key(const ec_secret&)':
utility/ec_keys.cpp:81:60: error: 'secp256k1_ecdsa_seckey_verify' was not declared in this scope
    return secp256k1_ecdsa_seckey_verify(private_key.data());
                                                           ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_tweak_add(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:115:73: error: 'secp256k1_ecdsa_pubkey_tweak_add' was not declared in this scope
    return secp256k1_ecdsa_pubkey_tweak_add(a.data(), a.size(), b.data());
                                                                        ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:121:73: error: 'secp256k1_ecdsa_pubkey_tweak_mul' was not declared in this scope
    return secp256k1_ecdsa_pubkey_tweak_mul(a.data(), a.size(), b.data());
                                                                        ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_add(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:127:64: error: 'secp256k1_ecdsa_privkey_tweak_add' was not declared in this scope
    return secp256k1_ecdsa_privkey_tweak_add(a.data(), b.data());
                                                               ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:133:64: error: 'secp256k1_ecdsa_privkey_tweak_mul' was not declared in this scope
    return secp256k1_ecdsa_privkey_tweak_mul(a.data(), b.data());
                                                               ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_public_key(const ec_point&)':
utility/ec_keys.cpp:76:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_private_key(const ec_secret&)':
utility/ec_keys.cpp:82:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_tweak_add(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:116:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:122:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_add(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:128:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:134:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

make[1]: * [utility/ec_keys.lo] Error 1
make[1]: Leaving directory '/usr/local/src/libbitcoin-git/src'
make: * [all-recursive] Error 1
Xxxxx@ubuntu:/$ sx
The program 'sx' is currently not installed. You can install it by typing:
sudo apt-get install lrzsz

有沒有人知道為什麼會發生這種情況以及是否有解決方法?我最初在使用 Ubuntu 12.04 LTS 時遇到了更多問題,所以正如我所提到的,我已經升級到 14 LTS。

libsecp256k1 中有一個重大的 API 更改尚未在 libbitcoin 的主分支中解決。如果你想走那條路,它已經在他們的develop分支上得到了解決。

我最幸運的是 mastercoin 的install-sx.sh腳本,該腳本從舊的未標記送出中提取,這些送出似乎可以和諧地工作。

引用自:https://bitcoin.stackexchange.com/questions/32219