'Link error when add libbitcoin to cmake project on Windows 10

I am going to build a C++ project (Project "test") to use libbitcoin library. I use CMake to configure. The libbitcoin.lib is built with Visual Studio 15 2017 (vs141). Libbitcoin build log:

  ConfigurationType : StaticLibrary
  Configuration     : ReleaseLIB
  PlatformToolset   : v141
  TargetPath        : H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\bin\x64\Release\v141\static\libbitcoin-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:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\bin\x64\Release\v141\static\libbitcoin-system.lib

Updated:

Then I add libbitcoin and Boost dependencies (all Boost libraries are built with vc141 too) to Project test and CMakeList file as below:

    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})

I checked the libbitcoin-system.lib to be static library with lib /list and dumpbin /ARCHIVEMEMBERS and it returns list of obj:

H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\resource.res
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\chain_state.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\compact.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\input.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\output.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\output_point.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\point.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\point_iterator.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\point_value.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\points_value.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\script.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\witness.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\authority.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base16.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base2.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base58.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base64.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\checkpoint.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\directory.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\endpoint.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\hash160.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\hash256.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\parameter.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\parser.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\printer.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\sodium.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\error.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base_10.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base_16.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base_58.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base_64.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\base_85.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\file_collector.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\file_collector_repository.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\file_counter_formatter.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\sink.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\statsd_sink.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\udp_client_sink.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\interpreter.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\number.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\opcode.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\operation.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\program.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\checksum.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\crypto.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\elliptic_curve.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\aes256.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\crypto_scrypt.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\hmac_sha256.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\hmac_sha512.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\lax_der_parsing.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\pbkdf2_sha256.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\pkcs5_pbkdf2.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ripemd160.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\sha1.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\sha256.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\sha512.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\zeroize.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\hash.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\secp256k1_initializer.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\stealth.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\address.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\alert.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\alert_payload.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\block_transactions.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\compact_block.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\fee_filter.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\filter_add.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\filter_clear.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\filter_load.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\get_address.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\get_block_transactions.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\get_blocks.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\get_data.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\get_headers.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\headers.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\heading.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\inventory.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\inventory_vector.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\memory_pool.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\merkle_block.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\messages.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\network_address.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\not_found.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ping.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\pong.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\prefilled_transaction.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\reject.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\send_compact.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\send_headers.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\verack.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\version.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\console_streambuf.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ifstream.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ofstream.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\unicode.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\unicode_istream.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\unicode_ostream.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\unicode_streambuf.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\binary.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\conditional_lock.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\deadline.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\dispatcher.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\flush_lock.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\interprocess_lock.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\istream_reader.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\monitor.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ostream_writer.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\png.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\prioritized_mutex.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\pseudo_random.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\scope_lock.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\sequencer.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\sequential_lock.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\socket.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\string.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\thread.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\threadpool.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\work.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\bitcoin_uri.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\dictionary.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ec_private.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ec_public.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ek_private.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ek_public.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\ek_token.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\electrum.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\electrum_dictionary.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\encrypted_keys.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\hd_private.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\hd_public.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\message.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\mini_keys.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\mnemonic.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\parse_encrypted_private.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\parse_encrypted_public.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\parse_encrypted_token.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\payment_address.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\qrcode.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\select_outputs.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\stealth_address.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\stealth_receiver.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\stealth_sender.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\uri.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\src_chain_block.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\src_chain_header.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\src_chain_transaction.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\src_message_block.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\src_message_header.obj
H:\CProject\libbitcoin-system\builds\msvc\vs2017\libbitcoin-system\..\..\..\..\obj\libbitcoin-system\x64\Release\v141\static\src_message_transaction.obj

When I build the project there are 2 unresolved points

H:\CProject\test\test\out\build\x64-Debug\test.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:\CProject\test\test\out\build\x64-Debug\test.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:\CProject\test\test\out\build\x64-Debug\Debug\test.exe : fatal error LNK1120: 2 unresolved externals

I am new with the library and this aspect too so I don't know what is the missing part that related to libbitcoin or boost. I am very appreciated if someone has any idea of what can I do.



Solution 1:[1]

Have you thought about using the find_package command instead of find_library for boost?

CMake ships the corresponding findBoost module (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)

This makes error messages much clearer and you have automatic propagation of public include directories.

However, the linker error reads like a dll error. Are you sure CMake found the static library and not a dynamic library? On the other hand, if your libbitcoin build didn't configure correctly, it might have been built with the dll export macros enabled. And/or you need to add a compile definition to your build

target_compile_definitions(-DUSE_STATIC_LIBBITCOIN)

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

This has been described in an other question here: How can I handle DLL_EXPORT when compiling dll to a static library?

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 tooEarlyToGetUp