gabime / spdlog

Fast C++ logging library.
Other
24.14k stars 4.51k forks source link

Installation on Windows fails #3222

Closed skipper85 closed 4 hours ago

skipper85 commented 5 hours ago

On my Windows 10 the installation of spdlog from source fails, seems that Debug and Release are swapped during the build stage. I use CMake version 3.30.5

git clone https://github.com/gabime/spdlog.git
cd spdlog
git checkout v1.14.1
mkdir build; cd build
cmake -DSPDLOG_BUILD_SHARED=ON -DSPDLOG_MASTER_PROJECT=ON -DCMAKE_BUILD_TYPE="Release" ..
cmake --build .
cmake --install .

Output of the project configuration:

-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045.
-- The CXX compiler identification is MSVC 19.41.34123.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build spdlog: 1.14.1
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
-- Found Threads: TRUE
-- Build type: Release
-- Generating example(s)
-- Generating install
-- Configuring done (4.4s)
-- Generating done (0.1s)
-- Build files have been written to: ~/Documents/programming/cpp/libraries/spdlog/build

The build folder contains:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        17-10-2024     00:06                CMakeFiles
d-----        17-10-2024     00:06                Debug
d-----        17-10-2024     00:06                example
d-----        17-10-2024     00:06                spdlog.dir
d-----        17-10-2024     00:06                x64
-a----        17-10-2024     00:06          44956 ALL_BUILD.vcxproj
-a----        17-10-2024     00:06            312 ALL_BUILD.vcxproj.filters
-a----        17-10-2024     00:06          19463 CMakeCache.txt
-a----        17-10-2024     00:06           8310 cmake_install.cmake
-a----        17-10-2024     00:06           4150 CPackConfig.cmake
-a----        17-10-2024     00:06           4659 CPackSourceConfig.cmake
-a----        17-10-2024     00:06          10763 INSTALL.vcxproj
-a----        17-10-2024     00:06            554 INSTALL.vcxproj.filters
-a----        17-10-2024     00:06          11214 PACKAGE.vcxproj
-a----        17-10-2024     00:06            554 PACKAGE.vcxproj.filters
-a----        17-10-2024     00:06            364 spdlog.pc
-a----        17-10-2024     00:06           5949 spdlog.sln
-a----        17-10-2024     00:06          70889 spdlog.vcxproj
-a----        17-10-2024     00:06          21498 spdlog.vcxproj.filters
-a----        17-10-2024     00:06           1403 spdlogConfig.cmake
-a----        17-10-2024     00:06           4794 spdlogConfigTargets.cmake
-a----        17-10-2024     00:06           2830 spdlogConfigVersion.cmake
-a----        17-10-2024     00:06            875 version.rc
-a----        17-10-2024     00:06          45468 ZERO_CHECK.vcxproj
-a----        17-10-2024     00:06            555 ZERO_CHECK.vcxproj.filters

And the Debug folder contains:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        17-10-2024     00:06        1460736 spdlogd.dll
-a----        17-10-2024     00:06         137374 spdlogd.exp
-a----        17-10-2024     00:06         223818 spdlogd.lib
-a----        17-10-2024     00:06        9269248 spdlogd.pdb

Output during the installation:

-- Install configuration: "Release"
-- Installing: C:/Program Files (x86)/spdlog/include
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/async.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/async_logger-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/async_logger.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/cfg
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/cfg/env.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/cfg/helpers-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/cfg/helpers.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/common-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/common.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/backtracer-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/backtracer.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/circular_q.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/console_globals.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/file_helper-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/file_helper.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/fmt_helper.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/log_msg-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/log_msg.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/log_msg_buffer-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/log_msg_buffer.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/mpmc_blocking_q.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/null_mutex.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/os-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/os.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/periodic_worker-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/periodic_worker.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/registry-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/registry.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/synchronous_factory.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/tcp_client-windows.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/tcp_client.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/thread_pool-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/thread_pool.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/udp_client-windows.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/udp_client.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/details/windows_include.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt/chrono.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt/compile.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt/fmt.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt/ostr.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt/ranges.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt/std.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fmt/xchar.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/fwd.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/logger-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/logger.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/mdc.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/pattern_formatter-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/pattern_formatter.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/ansicolor_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/base_sink-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/base_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/basic_file_sink-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/basic_file_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/callback_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/daily_file_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/dist_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/dup_filter_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/hourly_file_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/kafka_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/mongo_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/msvc_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/null_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/ostream_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/qt_sinks.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/ringbuffer_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/rotating_file_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/sink-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/stdout_color_sinks.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/stdout_sinks-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/stdout_sinks.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/syslog_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/systemd_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/tcp_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/udp_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/wincolor_sink-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/wincolor_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/sinks/win_eventlog_sink.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/spdlog-inl.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/spdlog.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/stopwatch.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/tweakme.h
-- Installing: C:/Program Files (x86)/spdlog/include/spdlog/version.h
CMake Error at cmake_install.cmake:60 (file):
  file INSTALL cannot find
  "C:/Users/gerar/Documents/programming/cpp/libraries/spdlog/build/Release/spdlog.dll":
  File exists.

Thank you in advance for your help.

tt4g commented 4 hours ago

Visual Studio is CMake's multi-config generator. During build and installation, you must specify the --config Release option to indicate that you want to build a release build. Otherwise, a default mode (debug in most cases) build will be performed.

skipper85 commented 4 hours ago

Thank you for your fast response. It works now with --config Release.

git clone https://github.com/gabime/spdlog.git
cd spdlog
git checkout v1.14.1
mkdir build; cd build
cmake -DSPDLOG_BUILD_SHARED=ON -DSPDLOG_MASTER_PROJECT=ON -DCMAKE_BUILD_TYPE="Release" -DSPDLOG_BUILD_ALL=OFF ..
cmake --build . --config Release
cmake --install . --config Release