在Windows 10上将libbitcoin添加到cmake项目时发生链接错误

Link error when add libbitcoin to cmake project on Windows 10

本文关键字:项目 错误 链接 cmake Windows 上将 libbitcoin 添加      更新时间:2024-09-27

我将构建一个C++项目(项目"测试"(来使用libbitcoin库。我使用CMake进行配置。libbitcoin.lib是使用Visual Studio 15 2017(vs141(构建的。Libbitcoin构建日志:

ConfigurationType : StaticLibrary
Configuration     : ReleaseLIB
PlatformToolset   : v141
TargetPath        : H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........binx64Releasev141staticlibbitcoin-system.lib
Linkage-secp256k1 : static
block.cpp
chain_state.cpp
compact.cpp
input.cpp
output.cpp
output_point.cpp
point.cpp
point_iterator.cpp
point_value.cpp
points_value.cpp
script.cpp
witness.cpp
authority.cpp
base16.cpp
base2.cpp
base58.cpp
base64.cpp
checkpoint.cpp
directory.cpp
endpoint.cpp
hash160.cpp
hash256.cpp
parameter.cpp
parser.cpp
printer.cpp
sodium.cpp
error.cpp
base_10.cpp
base_16.cpp
base_58.cpp
base_64.cpp
base_85.cpp
file_collector.cpp
file_collector_repository.cpp
file_counter_formatter.cpp
sink.cpp
statsd_sink.cpp
udp_client_sink.cpp
interpreter.cpp
number.cpp
opcode.cpp
operation.cpp
program.cpp
checksum.cpp
crypto.cpp
elliptic_curve.cpp
hash.cpp
secp256k1_initializer.cpp
stealth.cpp
address.cpp
alert.cpp
alert_payload.cpp
block_transactions.cpp
compact_block.cpp
fee_filter.cpp
filter_add.cpp
filter_clear.cpp
filter_load.cpp
get_address.cpp
get_block_transactions.cpp
get_blocks.cpp
get_data.cpp
get_headers.cpp
headers.cpp
heading.cpp
inventory.cpp
inventory_vector.cpp
memory_pool.cpp
merkle_block.cpp
messages.cpp
network_address.cpp
not_found.cpp
ping.cpp
pong.cpp
prefilled_transaction.cpp
reject.cpp
send_compact.cpp
send_headers.cpp
verack.cpp
version.cpp
console_streambuf.cpp
ifstream.cpp
ofstream.cpp
unicode.cpp
unicode_istream.cpp
unicode_ostream.cpp
unicode_streambuf.cpp
binary.cpp
conditional_lock.cpp
deadline.cpp
dispatcher.cpp
flush_lock.cpp
interprocess_lock.cpp
istream_reader.cpp
monitor.cpp
ostream_writer.cpp
png.cpp
prioritized_mutex.cpp
pseudo_random.cpp
scope_lock.cpp
sequencer.cpp
sequential_lock.cpp
socket.cpp
string.cpp
thread.cpp
threadpool.cpp
work.cpp
bitcoin_uri.cpp
dictionary.cpp
ec_private.cpp
ec_public.cpp
ek_private.cpp
ek_public.cpp
ek_token.cpp
electrum.cpp
electrum_dictionary.cpp
encrypted_keys.cpp
hd_private.cpp
hd_public.cpp
message.cpp
mini_keys.cpp
mnemonic.cpp
parse_encrypted_private.cpp
parse_encrypted_public.cpp
parse_encrypted_token.cpp
payment_address.cpp
qrcode.cpp
select_outputs.cpp
stealth_address.cpp
stealth_receiver.cpp
stealth_sender.cpp
uri.cpp
header.cpp
transaction.cpp
aes256.c
crypto_scrypt.c
hmac_sha256.c
hmac_sha512.c
lax_der_parsing.c
pbkdf2_sha256.c
pkcs5_pbkdf2.c
ripemd160.c
sha1.c
sha256.c
sha512.c
zeroize.c
block.cpp
header.cpp
transaction.cpp
qrcode.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
png.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
libbitcoin-system.vcxproj -> H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........binx64Releasev141staticlibbitcoin-system.lib

更新:

然后,我将libbitcoin和Boost依赖项(所有Boost库也是用vc141构建的(添加到Project测试和CMakeList文件中,如下所示:

cmake_minimum_required (VERSION 3.8)
set(VS150COMNTOOLS "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/Common7/Tools")
project ("test")

# Add libbitcoin
include_directories("${CMAKE_SOURCE_DIR}/include")
find_library(libbitcoin libbitcoin-system "${CMAKE_SOURCE_DIR}/libs")
# Add boost
SET (BOOST_ROOT "H:/New Download/boost_1_72_0/boost_1_72_0")
SET (BOOST_LIBRARYDIR "H:/New Download/boost_1_72_0/boost_1_72_0/stage/lib")
set(Boost_COMPILER "-vc141")
set(Boost_USE_STATIC_LIBS        ON)  # only find static libs
set(Boost_USE_DEBUG_LIBS        ON)  # ignore debug libs and
set(Boost_USE_RELEASE_LIBS       OFF)  # only find release libs
set(Boost_USE_MULTITHREADED      ON)
set(Boost_USE_STATIC_RUNTIME    OFF)
find_package(Boost "1.72.0" EXACT REQUIRED COMPONENTS 
thread date_time chrono regex filesystem iostreams program_options log log_setup atomic locale)
if (Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
endif()

# Add source to this project's executable.
add_executable (test "test.cpp" "test.h")
target_link_libraries(test ${libbitcoin} ${Boost_LIBRARIES})

我用lib/list和dumpbin/ARCHIVEMEMBERS将libbitcoin-system.lib检查为静态库,它返回obj:的列表

H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticresource.res
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticchain_state.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticcompact.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticinput.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticoutput.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticoutput_point.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpoint.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpoint_iterator.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpoint_value.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpoints_value.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticscript.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticwitness.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticauthority.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase16.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase2.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase58.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase64.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticcheckpoint.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticdirectory.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticendpoint.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141statichash160.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141statichash256.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticparameter.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticparser.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticprinter.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsodium.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticerror.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase_10.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase_16.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase_58.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase_64.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbase_85.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticfile_collector.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticfile_collector_repository.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticfile_counter_formatter.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsink.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticstatsd_sink.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticudp_client_sink.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticinterpreter.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticnumber.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticopcode.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticoperation.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticprogram.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticchecksum.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticcrypto.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticelliptic_curve.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticaes256.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticcrypto_scrypt.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141statichmac_sha256.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141statichmac_sha512.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticlax_der_parsing.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpbkdf2_sha256.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpkcs5_pbkdf2.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticripemd160.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsha1.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsha256.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsha512.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticzeroize.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141statichash.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsecp256k1_initializer.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticstealth.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticaddress.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticalert.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticalert_payload.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticblock_transactions.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticcompact_block.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticfee_filter.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticfilter_add.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticfilter_clear.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticfilter_load.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticget_address.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticget_block_transactions.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticget_blocks.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticget_data.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticget_headers.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticheaders.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticheading.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticinventory.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticinventory_vector.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticmemory_pool.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticmerkle_block.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticmessages.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticnetwork_address.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticnot_found.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticping.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpong.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticprefilled_transaction.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticreject.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsend_compact.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsend_headers.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticverack.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticversion.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticconsole_streambuf.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticifstream.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticofstream.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticunicode.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticunicode_istream.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticunicode_ostream.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticunicode_streambuf.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbinary.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticconditional_lock.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticdeadline.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticdispatcher.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticflush_lock.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticinterprocess_lock.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticistream_reader.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticmonitor.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticostream_writer.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpng.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticprioritized_mutex.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpseudo_random.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticscope_lock.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsequencer.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsequential_lock.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsocket.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticstring.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticthread.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticthreadpool.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticwork.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticbitcoin_uri.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticdictionary.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticec_private.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticec_public.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticek_private.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticek_public.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticek_token.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticelectrum.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticelectrum_dictionary.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticencrypted_keys.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141statichd_private.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141statichd_public.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticmessage.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticmini_keys.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticmnemonic.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticparse_encrypted_private.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticparse_encrypted_public.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticparse_encrypted_token.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticpayment_address.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticqrcode.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticselect_outputs.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticstealth_address.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticstealth_receiver.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticstealth_sender.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticuri.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsrc_chain_block.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsrc_chain_header.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsrc_chain_transaction.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsrc_message_block.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsrc_message_header.obj
H:CProjectlibbitcoin-systembuildsmsvcvs2017libbitcoin-system........objlibbitcoin-systemx64Releasev141staticsrc_message_transaction.obj

当我构建项目时,有2个未解决的点

H:CProjecttesttestoutbuildx64-Debugtest.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl libbitcoin::config::checkpoint::checkpoint(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned __int64)" (__imp_??0checkpoint@config@libbitcoin@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_K@Z) referenced in function "void __cdecl libbitcoin::`dynamic initializer for 'mainnet_bip16_exception_checkpoint''(void)" (??__Emainnet_bip16_exception_checkpoint@libbitcoin@@YAXXZ) 
H:CProjecttesttestoutbuildx64-Debugtest.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned char const libbitcoin::machine::number::negative_mask" (__imp_?negative_mask@number@machine@libbitcoin@@2EB) 
H:CProjecttesttestoutbuildx64-DebugDebugtest.exe : fatal error LNK1120: 2 unresolved externals

我对库和这方面也很陌生,所以我不知道与libbitcoin或boost相关的缺失部分是什么。如果有人知道我能做什么,我将不胜感激。

您是否想过使用find_package命令而不是find_library进行升压?

CMake提供相应的findBoost模块(https://cmake.org/cmake/help/latest/module/FindBoost.html):

find_package(Boost 1.67 REQUIRED COMPONENTS
python36 numpy36)
add_executable(foo foo.cc)
target_link_libraries(foo Boost::python36 Boost::numpy36)

这使得错误消息更加清晰,并且可以自动传播公共包含目录。

但是,链接器错误读起来像dll错误。你确定CMake找到了静态库而不是动态库吗?另一方面,如果libbitcoin内部版本配置不正确,则可能是在启用dll导出宏的情况下生成的。和/或您需要在构建中添加一个编译定义

target_compile_definitions(-DUSE_STATIC_LIBBITCOIN)

(https://cmake.org/cmake/help/latest/command/target_compile_definitions.html)

这里的另一个问题已经描述了这一点:将DLL编译到静态库时,如何处理DLL_EXPORT?