Fehler beim Kompilieren von bitcoin-qt: ld.exe: kann -lsecp256k1 nicht finden

Ich habe die Anleitung „ Building headless Bitcoin and Bitcoin-qt on Windows “ befolgt, aber mit einem neueren Altcoin-Quellcode zum Testen.

Der Kompilierungsstopp auf ld.exe: kann -lsecp256k1 nicht finden

Fehlt ein Schritt, um diese fehlende DLL zu generieren?

Mein qt-pro enthält:

win32:BOOST_LIB_SUFFIX=-mgw49-mt-s-1_57
win32:BOOST_INCLUDE_PATH=C:/Deps/boost_1_57_0
win32:BOOST_LIB_PATH=C:/Deps/boost_1_57_0/stage/lib
win32:BDB_INCLUDE_PATH=c:/deps/db-4.8.30 .NC/build_unix/
win32:BDB_LIB_PATH=c:/deps/db-4.8.30.NC/build_unix
win32:OPENSSL_INCLUDE_PATH=C:/Deps/openssl-1.0.2k/include/win32
:OPENSSL_LIB_PATH=C:/Deps/openssl -1.0.2k
win32:MINIUPNPC_INCLUDE_PATH=C:/Deps/
win32:MINIUPNPC_LIB_PATH=C:/Deps/miniupnpc/
win32:LIBPNG_INCLUDE_PATH=C:/Deps/libpng-1.6.1/
win32:LIBPNG_LIB_PATH=C:/Deps/libpng- 1.6.18
win32:QRENCODE_INCLUDE_PATH=C:/Deps/qrencode-3.4.4
win32:QRENCODE_LIB_PATH=C:/Deps/qrencode-3.4.4/.libs
win32:SECP256K1_LIB_PATH = C:/Crypto/mycrypto/src/secp256k1/
win32:SECP256K1_INCLUDE_PATH = C:/Crypto/mycrypto/src/secp256k1/include

Willkommen bei Bitcoin.SE! Das ist eine ziemlich alte Anleitung für Bitcoin Core v0.9.4, v0.10rc4 oder v0.8.6. Normalerweise erfolgt das Kompilieren von Bitcoin Core für Windows heutzutage in einer Ubuntu-Umgebung oder ähnlichem ( build-windows.md ), aber ohne einen Link zum Altcoin-Quell-Repository kann ich nicht einmal überprüfen, was seine Build-Dokumente sagen. Wahrscheinlich verwendet es lsecp256k1 anstelle von oder zusätzlich zu secp256k1.
@Willtech danke für dein Willkommen. Ich habe zwei Lernmünzen erstellt (die letzte ist github.com/JustCuriously/locavore ), nur um zu sehen, wie es funktioniert, einen Explorer zu bauen usw. Es ist natürlich eine Kopie eines anderen alten Forks, aber es dient dazu, den Prozess zu verstehen. Das Linux-QT wurde kompiliert, aber ich kann das Windows-QT nicht kompilieren. Wenn ich die neue Methode (build-windows.md) für den alten Code verwende, werde ich jetzt viele abhängige Fehler haben?
Ihre Standard-Bauanleitung ist hier , funktionieren sie?
Da ich die Windows-Version mehr oder weniger nicht kompilieren konnte, habe ich die Methode noch nicht aktualisiert. Ich übertrage gerade die qt-Version für Linux (mit qt5). Ich suche nach einer vollständigen Codeversion zum Studieren, mit MN, POW, POS ... aber jedes Mal, wenn ich die Git-Quelle klone und versuche, etwas zu kompilieren, fehlt etwas ... es scheint, dass die Entwickler etwas zu verbergen oder nicht zu tun haben. Ich mag es nicht, Geheimnisse zu teilen :-)
Nur aus Interesse, was passiert, wenn Sie die beiden Pfade für lsecp256k1 hinzufügen und sie nur auf secp256k1 verweisen?
Ich starte meine Installation von Grund auf neu und überprüfe meine Deps ... nein, ich habe einen weiteren Fehler: build\key.o:key.cpp:(.text+0x8f3): undefined reference to secp256k1_ecdsa_sign_recoverable' ./build\key.o:key.cpp:(.text+0x919): undefined reference to secp256k1_ecdsa_recoverable_signature_serialize_compact' ./build\key.o:key .cpp:(.text+0x98a): undefinierter Verweis auf secp256k1_ecdsa_recoverable_signature_serialize_compact' C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: ./build\key.o: bad reloc address 0x1c in section .text$
Hast du auch noch den Pfad für secp256k1 definiert?
Ja, immer noch so definiert, ich entferne einfach alles (ich arbeite an einer VM), um doppelte Installationen oder andere Versionen zu vermeiden.
Sie können Ihr Git-Repository mit zurücksetzen, git clean -fdxbevor Sie versuchen, es zu erstellen, wenn dies etwas Aufwand spart, aber das hat nichts mit Ihrem Problem zu tun

Antworten (1)

Problem gelöst ! Während des Kompilierungsprozesses von secp256k1 (MINGW32 unter Windows) ist ein Fehler aufgetreten, der Folgendes hinzufügt:

LT_INIT([win32-dll])

in die secp256k1/configure.ac hat den Kompilierungsfehler behoben.