在Windows 10上将libbitcoin添加到cmake项目时发生链接错误
Link error when add libbitcoin to cmake project on Windows 10
我将构建一个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?
- 项目错误:QT中的未知模块:Mac上的图表
- 欧拉项目#8:C++错误的答案(为一个小的炮制输入给出正确的答案)
- 项目错误:无法解析'macosx'的 SDK 路径
- 混合模式程序集是针对版本 'v2.0.50727' 构建的 ...本机C++/Visual C++/C# 项目错误
- windows 10上的wxWidgets 3.1.0项目错误
- 将 Sqlite3 添加到项目错误 C1853 预编译头文件来自以前的版本
- Visual Studio 2015 c++ 项目错误 c++11 标准
- 用中断函数将Keil5C项目转换为C++项目错误
- 无法在vs2012中生成任何c++项目.错误LNK1327:rc.exe
- Oculus Rift VR - 示例项目错误
- 项目错误:QT 中的未知模块:webkitwidgets
- VTK+QT项目:错误LNK1169:找到一个或多个多重定义符号
- Microsoft Visual Studio-项目错误
- 电话簿项目错误.在编译器中并没有发现错误,但当它运行很长时间后就会退出
- Qt创建者-项目错误:Xcode设置不正确.您可能需要通过运行/usr/bin/xcodebuild来确认许可协议
- VSU 2012-在其他计算机上中继项目错误(SQLCE)
- 项目错误:QT中的未知模块:蓝牙
- 项目错误:未知模块(s)在QT: qml快速
- ReadDirectoryChangesW WIN32 API项目错误
- 1.项目错误:QT: webkitwidgets中的未知模块