Использование vc140 Boost для Visual Studio 17 - PullRequest
0 голосов
/ 26 сентября 2018

Я в настоящее время связываю повышение с моим текущим проектом.У меня есть предоставленные библиотеки (я не могу попросить их изменить) vc140 [Они названы примерно так: boost_thread-vc140-mt-x64-1_67.lib].Теперь, когда я пытаюсь построить свой код, я получаю сообщение об ошибке.

Журнал ошибок:

LNK1104 cannot open file 'libboost_thread-vc141-mt-x64-1_67.lib'

То же самое можно удалить с помощью вариантов vc141 (я пытался использовать то же самое после загрузкиэто один раз).Читая некоторые материалы, я обнаружил, что vc140 для Studio 15, а vc141 для Studio 17].

Эта ссылка , по-видимому, предполагает, что vc140 будет работать со Studio 17. Любые предложения о том, что может быть не так?

PS Я пытался использовать add_definitions (-DBOOST_ALL_NO_LIB)и Boost :: disable_autolinking

PPS Мой cmake выполняется успешно.Проблема возникает во время компиляции.Похоже, что на экране Linker> командной строки предполагается, что библиотека vc140 успешно связана.

message ($ {Boost_LIBRARIES}) печатает:

optimized
[path-to-boost]/tools/lib/boost_thread-vc140-mt-x64-1_67.libdebug
[path-to-boost]/tools/lib/boost_thread-vc140-mt-gd-x64-1_67.liboptimized
[path-to-boost]/tools/lib/boost_system-vc140-mt-x64-1_67.libdebug
[path-to-boost]/tools/lib/boost_system-vc140-mt-gd-x64-1_67.liboptimized
[path-to-boost]/tools/lib/boost_date_time-vc140-mt-x64-1_67.libdebug
[path-to-boost]/tools/lib/boost_date_time-vc140-mt-gd-x64-1_67.liboptimized
[path-to-boost]/tools/lib/boost_chrono-vc140-mt-x64-1_67.libdebug
[path-to-boost]/tools/lib/boost_chrono-vc140-mt-gd-x64-1_67.liboptimized
[path-to-boost]/tools/lib/boost_atomic-vc140-mt-x64-1_67.libdebug
[path-to-boost]/tools/lib/boost_atomic-vc140-mt-gd-x64-1_67.lib

Фрагмент скрипта:

# Boost headers dependency (and boost_system calls generated by inline
# functions)
if (WIN32)
    set(Boost_USE_STATIC_LIBS OFF)
    find_package(Boost 1.67 REQUIRED
        COMPONENTS thread system date_time chrono)
else ()
    find_package(Boost 1.67 REQUIRED
        COMPONENTS thread system)
endif ()

include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(${MAIN_TARGET} ${Boost_LIBRARIES})

# we know how to link against Boost ourselves, thank you...
add_definitions(-DBOOST_ALL_NO_LIB)
...