Introduction
Recently, I reported an issue in the Boost.Thread module where the msvc linker intended to link a file that doesn't even exist. The file was:
libboost_thread-vc143-mt-gd-x64-1_78.lib
It has also been reported, in the same issue, that the prefix lib* is used for mingw, even though I don't have any mingw installation and only have Visual Studio and msvc.
Solution of Bug
The solution was to add Boost::disable_autolinking in target_link_libraries:
target_link_libraries(ProjName PUBLIC Boost::thread Boost::disable_autolinking)
This solved the problem, but it wasn't supposed to have the lib* prefix when using CMake with msvc, it was to have linked correctly without having to specify Boost::disable_autolinking.
The most likely cause would be a bug of this module that, when treating the prefix of the library on the Windows platform with msvc, ended up accidentally placing this prefix, being that it was supposed to be in mingw.
Extra Information
- OS: Windows 11;
- Arch: x64;
- I'm using Visual Studio 2022;
- With Windows 10 SDK;
- With CMake 3.25.1-msvc1
- With MSVC toolset v143;
- Boost 1.79 downloaded from SourceForge;
- The files of Boost are located in
C:\boost_1_79_0.
The following instructions are used:
if(PROJECT_DEBUG)
set(Boost_DEBUG ON )
set(Boost_USE_DEBUG_LIBS ON )
set(Boost_USE_RELEASE_LIBS OFF )
set(Boost_USE_DEBUG_RUNTIME ON )
else()
set(Boost_USE_RELEASE_LIBS ON )
set(Boost_USE_DEBUG_LIBS OFF )
set(Boost_USE_DEBUG_RUNTIME OFF )
endif()
set(Boost_USE_MULTITHREADED ON )
set(Boost_USE_STATIC_LIBS OFF )
set(Boost_USE_STATIC_RUNTIME OFF )
find_package(Boost 1.79.0 REQUIRED COMPONENTS thread system)
Logs
Configuration log:
1> [CMake] -- Selecting Windows SDK version 10.0.20348.0 to target Windows 10.0.22621.
1> [CMake] -- The CXX compiler identification is MSVC 19.35.32215.0
1> [CMake] -- Detecting CXX compiler ABI info
1> [CMake] -- Detecting CXX compiler ABI info - done
1> [CMake] -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe - skipped
1> [CMake] -- Detecting CXX compile features
1> [CMake] -- Detecting CXX compile features - done
1> [CMake] -- Found JNI: C:/Program Files/Eclipse Adoptium/jdk-17.0.6.10-hotspot/include (Required is at least version "17") found components: AWT JVM
1> [CMake] -- Found Python: C:/Program Files/WindowsApps/PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0/python3.10.exe (found suitable version "3.10.10", minimum required is "3.8") found components: Interpreter
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1689 ] _boost_TEST_VERSIONS = "1.80.0;1.80;1.79.0;1.79"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1690 ] Boost_USE_MULTITHREADED = "ON"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1691 ] Boost_USE_STATIC_LIBS = "OFF"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1692 ] Boost_USE_STATIC_RUNTIME = "OFF"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1693 ] Boost_ADDITIONAL_VERSIONS = <unset>
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1694 ] Boost_NO_SYSTEM_PATHS = <unset>
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1726 ] BOOST_ROOT = "C:\boost_1_79_0"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1727 ] ENV{BOOST_ROOT} = <unset>
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1728 ] BOOST_INCLUDEDIR = <unset>
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1729 ] ENV{BOOST_INCLUDEDIR} = <unset>
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1730 ] BOOST_LIBRARYDIR = <unset>
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1731 ] ENV{BOOST_LIBRARYDIR} = <unset>
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1803 ] _boost_INCLUDE_SEARCH_DIRS = "C:\boost_1_79_0/include;C:\boost_1_79_0;PATHS;C:/local/boost_1_80_0;PATHS;C:/local/boost_1_80;PATHS;C:/local/boost_1_79_0;PATHS;C:/local/boost_1_79;PATHS;C:/boost/include;C:/boost;/sw/local/include"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1804 ] _boost_PATH_SUFFIXES = "boost-1_80_0;boost_1_80_0;boost/boost-1_80_0;boost/boost_1_80_0;boost-1_80;boost_1_80;boost/boost-1_80;boost/boost_1_80;boost-1_79_0;boost_1_79_0;boost/boost-1_79_0;boost/boost_1_79_0;boost-1_79;boost_1_79;boost/boost-1_79;boost/boost_1_79"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1819 ] location of version.hpp: C:/boost_1_79_0/boost/version.hpp
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1859 ] Boost_VERSION = "107900"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1860 ] Boost_VERSION_STRING = "1.79.0"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1861 ] Boost_VERSION_MACRO = "107900"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1862 ] Boost_VERSION_MAJOR = "1"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1863 ] Boost_VERSION_MINOR = "79"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1864 ] Boost_VERSION_PATCH = "0"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1865 ] Boost_VERSION_COUNT = "3"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1889 ] Boost_LIB_PREFIX = ""
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1890 ] Boost_NAMESPACE = "boost"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:953 ] _boost_COMPILER = "-vc143;-vc142;-vc141;-vc140" (guessed)
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:1926 ] _boost_MULTITHREADED = "-mt"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2004 ] _boost_ARCHITECTURE_TAG = "-x64" (detected)
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2008 ] _boost_RELEASE_ABI_TAG = "-"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2009 ] _boost_DEBUG_ABI_TAG = "-gd"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2069 ] _boost_LIBRARY_SEARCH_DIRS_RELEASE = "C:\boost_1_79_0/lib;C:\boost_1_79_0/stage/lib;C:\boost_1_79_0/lib64-msvc-14.3;C:\boost_1_79_0/lib64-msvc-14.2;C:\boost_1_79_0/lib64-msvc-14.1;C:\boost_1_79_0/lib64-msvc-14.0;C:/boost_1_79_0/lib;C:/boost_1_79_0/../lib;C:/boost_1_79_0/stage/lib;C:/boost_1_79_0/../lib64-msvc-14.3;C:/boost_1_79_0/../lib64-msvc-14.2;C:/boost_1_79_0/../lib64-msvc-14.1;C:/boost_1_79_0/../lib64-msvc-14.0;C:/boost_1_79_0/lib64-msvc-14.3;C:/boost_1_79_0/lib64-msvc-14.2;C:/boost_1_79_0/lib64-msvc-14.1;C:/boost_1_79_0/lib64-msvc-14.0;C:/local/boost_1_80_0/lib64-msvc-14.3;C:/local/boost_1_80_0/lib64-msvc-14.2;C:/local/boost_1_80_0/lib64-msvc-14.1;C:/local/boost_1_80_0/lib64-msvc-14.0;C:/local/boost_1_80/lib64-msvc-14.3;C:/local/boost_1_80/lib64-msvc-14.2;C:/local/boost_1_80/lib64-msvc-14.1;C:/local/boost_1_80/lib64-msvc-14.0;C:/local/boost_1_79_0/lib64-msvc-14.3;C:/local/boost_1_79_0/lib64-msvc-14.2;C:/local/boost_1_79_0/lib64-msvc-14.1;C:/local/boost_1_79_0/lib64-msvc-14.0;C:/local/boost_1_79/lib64-msvc-14.3;C:/local/boost_1_79/lib64-msvc-14.2;C:/local/boost_1_79/lib64-msvc-14.1;C:/local/boost_1_79/lib64-msvc-14.0;C:/boost/lib64-msvc-14.3;C:/boost/lib64-msvc-14.2;C:/boost/lib64-msvc-14.1;C:/boost/lib64-msvc-14.0;PATHS;C:/boost/lib;C:/boost;/sw/local/lib"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2070 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "C:\boost_1_79_0/lib;C:\boost_1_79_0/stage/lib;C:\boost_1_79_0/lib64-msvc-14.3;C:\boost_1_79_0/lib64-msvc-14.2;C:\boost_1_79_0/lib64-msvc-14.1;C:\boost_1_79_0/lib64-msvc-14.0;C:/boost_1_79_0/lib;C:/boost_1_79_0/../lib;C:/boost_1_79_0/stage/lib;C:/boost_1_79_0/../lib64-msvc-14.3;C:/boost_1_79_0/../lib64-msvc-14.2;C:/boost_1_79_0/../lib64-msvc-14.1;C:/boost_1_79_0/../lib64-msvc-14.0;C:/boost_1_79_0/lib64-msvc-14.3;C:/boost_1_79_0/lib64-msvc-14.2;C:/boost_1_79_0/lib64-msvc-14.1;C:/boost_1_79_0/lib64-msvc-14.0;C:/local/boost_1_80_0/lib64-msvc-14.3;C:/local/boost_1_80_0/lib64-msvc-14.2;C:/local/boost_1_80_0/lib64-msvc-14.1;C:/local/boost_1_80_0/lib64-msvc-14.0;C:/local/boost_1_80/lib64-msvc-14.3;C:/local/boost_1_80/lib64-msvc-14.2;C:/local/boost_1_80/lib64-msvc-14.1;C:/local/boost_1_80/lib64-msvc-14.0;C:/local/boost_1_79_0/lib64-msvc-14.3;C:/local/boost_1_79_0/lib64-msvc-14.2;C:/local/boost_1_79_0/lib64-msvc-14.1;C:/local/boost_1_79_0/lib64-msvc-14.0;C:/local/boost_1_79/lib64-msvc-14.3;C:/local/boost_1_79/lib64-msvc-14.2;C:/local/boost_1_79/lib64-msvc-14.1;C:/local/boost_1_79/lib64-msvc-14.0;C:/boost/lib64-msvc-14.3;C:/boost/lib64-msvc-14.2;C:/boost/lib64-msvc-14.1;C:/boost/lib64-msvc-14.0;PATHS;C:/boost/lib;C:/boost;/sw/local/lib"
1> [CMake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
1> [CMake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
1> [CMake] -- Looking for pthread_create in pthreads
1> [CMake] -- Looking for pthread_create in pthreads - not found
1> [CMake] -- Looking for pthread_create in pthread
1> [CMake] -- Looking for pthread_create in pthread - not found
1> [CMake] -- Found Threads: TRUE
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2255 ] Searching for THREAD_LIBRARY_RELEASE: boost_thread-vc143-mt-x64-1_79;boost_thread-vc143-mt-x64;boost_thread-vc143-mt;boost_thread-vc142-mt-x64-1_79;boost_thread-vc142-mt-x64;boost_thread-vc142-mt;boost_thread-vc141-mt-x64-1_79;boost_thread-vc141-mt-x64;boost_thread-vc141-mt;boost_thread-vc140-mt-x64-1_79;boost_thread-vc140-mt-x64;boost_thread-vc140-mt;boost_thread-mt-x64-1_79;boost_thread-mt-x64;boost_thread-mt;boost_thread-mt;boost_thread
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2310 ] Searching for THREAD_LIBRARY_DEBUG: boost_thread-vc143-mt-gd-x64-1_79;boost_thread-vc143-mt-gd-x64;boost_thread-vc143-mt-gd;boost_thread-vc142-mt-gd-x64-1_79;boost_thread-vc142-mt-gd-x64;boost_thread-vc142-mt-gd;boost_thread-vc141-mt-gd-x64-1_79;boost_thread-vc141-mt-gd-x64;boost_thread-vc141-mt-gd;boost_thread-vc140-mt-gd-x64-1_79;boost_thread-vc140-mt-gd-x64;boost_thread-vc140-mt-gd;boost_thread-mt-gd-x64-1_79;boost_thread-mt-gd-x64;boost_thread-mt-gd;boost_thread-mt;boost_thread
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:807 ] Boost_LIBRARY_DIR_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:809 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2255 ] Searching for SYSTEM_LIBRARY_RELEASE: boost_system-vc143-mt-x64-1_79;boost_system-vc143-mt-x64;boost_system-vc143-mt;boost_system-vc142-mt-x64-1_79;boost_system-vc142-mt-x64;boost_system-vc142-mt;boost_system-vc141-mt-x64-1_79;boost_system-vc141-mt-x64;boost_system-vc141-mt;boost_system-vc140-mt-x64-1_79;boost_system-vc140-mt-x64;boost_system-vc140-mt;boost_system-mt-x64-1_79;boost_system-mt-x64;boost_system-mt;boost_system-mt;boost_system
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2310 ] Searching for SYSTEM_LIBRARY_DEBUG: boost_system-vc143-mt-gd-x64-1_79;boost_system-vc143-mt-gd-x64;boost_system-vc143-mt-gd;boost_system-vc142-mt-gd-x64-1_79;boost_system-vc142-mt-gd-x64;boost_system-vc142-mt-gd;boost_system-vc141-mt-gd-x64-1_79;boost_system-vc141-mt-gd-x64;boost_system-vc141-mt-gd;boost_system-vc140-mt-gd-x64-1_79;boost_system-vc140-mt-gd-x64;boost_system-vc140-mt-gd;boost_system-mt-gd-x64-1_79;boost_system-mt-gd-x64;boost_system-mt-gd;boost_system-mt;boost_system
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:807 ] Boost_LIBRARY_DIR_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:809 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2255 ] Searching for CHRONO_LIBRARY_RELEASE: boost_chrono-vc143-mt-x64-1_79;boost_chrono-vc143-mt-x64;boost_chrono-vc143-mt;boost_chrono-vc142-mt-x64-1_79;boost_chrono-vc142-mt-x64;boost_chrono-vc142-mt;boost_chrono-vc141-mt-x64-1_79;boost_chrono-vc141-mt-x64;boost_chrono-vc141-mt;boost_chrono-vc140-mt-x64-1_79;boost_chrono-vc140-mt-x64;boost_chrono-vc140-mt;boost_chrono-mt-x64-1_79;boost_chrono-mt-x64;boost_chrono-mt;boost_chrono-mt;boost_chrono
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2310 ] Searching for CHRONO_LIBRARY_DEBUG: boost_chrono-vc143-mt-gd-x64-1_79;boost_chrono-vc143-mt-gd-x64;boost_chrono-vc143-mt-gd;boost_chrono-vc142-mt-gd-x64-1_79;boost_chrono-vc142-mt-gd-x64;boost_chrono-vc142-mt-gd;boost_chrono-vc141-mt-gd-x64-1_79;boost_chrono-vc141-mt-gd-x64;boost_chrono-vc141-mt-gd;boost_chrono-vc140-mt-gd-x64-1_79;boost_chrono-vc140-mt-gd-x64;boost_chrono-vc140-mt-gd;boost_chrono-mt-gd-x64-1_79;boost_chrono-mt-gd-x64;boost_chrono-mt-gd;boost_chrono-mt;boost_chrono
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:807 ] Boost_LIBRARY_DIR_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:809 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2255 ] Searching for ATOMIC_LIBRARY_RELEASE: boost_atomic-vc143-mt-x64-1_79;boost_atomic-vc143-mt-x64;boost_atomic-vc143-mt;boost_atomic-vc142-mt-x64-1_79;boost_atomic-vc142-mt-x64;boost_atomic-vc142-mt;boost_atomic-vc141-mt-x64-1_79;boost_atomic-vc141-mt-x64;boost_atomic-vc141-mt;boost_atomic-vc140-mt-x64-1_79;boost_atomic-vc140-mt-x64;boost_atomic-vc140-mt;boost_atomic-mt-x64-1_79;boost_atomic-mt-x64;boost_atomic-mt;boost_atomic-mt;boost_atomic
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:2310 ] Searching for ATOMIC_LIBRARY_DEBUG: boost_atomic-vc143-mt-gd-x64-1_79;boost_atomic-vc143-mt-gd-x64;boost_atomic-vc143-mt-gd;boost_atomic-vc142-mt-gd-x64-1_79;boost_atomic-vc142-mt-gd-x64;boost_atomic-vc142-mt-gd;boost_atomic-vc141-mt-gd-x64-1_79;boost_atomic-vc141-mt-gd-x64;boost_atomic-vc141-mt-gd;boost_atomic-vc140-mt-gd-x64-1_79;boost_atomic-vc140-mt-gd-x64;boost_atomic-vc140-mt-gd;boost_atomic-mt-gd-x64-1_79;boost_atomic-mt-gd-x64;boost_atomic-mt-gd;boost_atomic-mt;boost_atomic
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:807 ] Boost_LIBRARY_DIR_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3"
1> [CMake] -- [ C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25/Modules/FindBoost.cmake:809 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "C:/boost_1_79_0/lib64-msvc-14.3;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH"
1> [CMake] -- Found Boost: C:/boost_1_79_0 (found suitable version "1.79.0", minimum required is "1.79.0") found components: thread system chrono atomic
1> [CMake] -- Configuring done
1> [CMake] -- Generating done
1> [CMake] -- Build files have been written to: C:/Users/...../out/build/x64-Debug
Build log:
MSBuild version 17.5.0+6f08c67f3 for .NET Framework
Checking Build System
Building Custom Rule C:/Users/...../CMakeLists.txt
JsdnInterface.cpp
JsdnMethods.cpp
JsdnFxrStart.cpp
JsdnActivator.cpp
JsdnDispatch.cpp
JsdnArgArray.cpp
JsdnConcurrent.cpp <--- The file that uses Boost
Generating code...
C:\Users\....\out\build\x64-Debug\LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc143-mt-gd-x64-1_79.lib'
Steps to reproduce
- Create an empty CMake project with Visual Studio 2022 generator;
- Download the binaries from SourceForge and set
BOOST_ROOT;
- Add those options listed above;
- Add
find_package (as above), include_directories (${Boost_INCLUDE_DIRS}), target_link_libraries (Boost::thread);
- Wait compile and possibly give the error.
(I tried to be as brief as possible.)
Introduction
Recently, I reported an issue in the
Boost.Threadmodule where the msvc linker intended to link a file that doesn't even exist. The file was:libboost_thread-vc143-mt-gd-x64-1_78.libIt has also been reported, in the same issue, that the prefix
lib*is used for mingw, even though I don't have any mingw installation and only have Visual Studio and msvc.Solution of Bug
The solution was to add
Boost::disable_autolinkingintarget_link_libraries:This solved the problem, but it wasn't supposed to have the
lib*prefix when using CMake with msvc, it was to have linked correctly without having to specifyBoost::disable_autolinking.The most likely cause would be a bug of this module that, when treating the prefix of the library on the Windows platform with msvc, ended up accidentally placing this prefix, being that it was supposed to be in mingw.
Extra Information
C:\boost_1_79_0.The following instructions are used:
Logs
Configuration log:
Build log:
Steps to reproduce
BOOST_ROOT;find_package(as above),include_directories(${Boost_INCLUDE_DIRS}),target_link_libraries(Boost::thread);(I tried to be as brief as possible.)