Ошибка компиляции биткойн-qt: ld.exe: не удается найти -lsecp256k1

Я следовал руководству « Создание безголового биткойна и биткойн-qt в Windows », но с более свежим исходным кодом альткойна для тестирования.

Остановка компиляции на ld.exe: не удается найти -lsecp256k1

Не хватает одного шага для создания этой отсутствующей dll?

Мой qt-pro включает в себя:

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

Добро пожаловать в Биткойн.SE! Это довольно старое руководство для Bitcoin Core v0.9.4, v0.10rc4 или v0.8.6. Обычно в наши дни компиляция Bitcoin Core для Windows выполняется в среде Ubuntu или аналогичной ( build-windows.md ), но без ссылки на исходный репозиторий альткойнов я даже не могу проверить, что говорят его документы по сборке. Вероятно, он использует lsecp256k1 вместо secp256k1 или вместе с ним.
@Willtech спасибо за ваш прием. Я создал две обучающие монеты (последняя — github.com/JustCuricious/locavore ), просто чтобы посмотреть, как это работает, построить проводник и т. д. Это, конечно, копия другого старого форка, но для понимания процесса. Linux qt был скомпилирован, но я не могу скомпилировать Windows qt. Если использовать новый метод (build-windows.md) в старом коде, теперь у меня будет много зависимых ошибок?
Ваши стандартные инструкции по сборке здесь , они работают?
более или менее так как я не смог скомпилировать версию для Windows, я еще не обновил метод. Я просто фиксирую версию qt для Linux (с qt5). Я ищу полную версию кода для изучения, с MN, POW, POS ... но каждый раз, когда я клонирую исходный код git и пытаюсь скомпилировать, чего-то не хватает ... кажется, что разработчику есть что скрывать или не делать' не хочу делиться секретом :-)
Просто из интереса, что произойдет, если добавить два пути для lsecp256k1, просто указав их на secp256k1?
Я перезапускаю свою установку с нуля и проверяю свои deps... нет, у меня другая ошибка: build\key.o:key.cpp:(.text+0x8f3): неопределенная ссылка на 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): неопределенная ссылка на 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$
У вас все еще есть путь для secp256k1?
да, все еще определено так, я просто удаляю все (я работаю над виртуальной машиной), чтобы избежать дублирования установки или другой версии.
Вы можете сбросить свой репозиторий git git clean -fdxперед попыткой сборки, если это сэкономит некоторые усилия, но это не связано с вашей проблемой.

Ответы (1)

Проблема решена ! Произошла ошибка в процессе компиляции secp256k1 (MINGW32 под Windows), добавив:

LT_INIT([win32-dll])

в файле secp256k1/configure.ac устранена ошибка компиляции.