lib路径:/root/spdlog/build 2.加入头文件logger.h #ifndefLOGGER_H_#defineLOGGER_H_#include"spdlog/spdlog.h"#include"spdlog/sinks/rotating_file_sink.h"#include"spdlog/sinks/daily_file_sink.h"#include"spdlog/sinks/stdout_color_sinks.h"#include<iostream>#include<memory>// spd带行号的打印,同时输...
有的第三方库对 CMake 过于友好,可以直接复制整个源码到当前项目,然后使用add_subdirectory()将其作为子项目参与生成和编译,然后在其它子项目中使用,无论本地项目有没有依赖这个子项目,它都会被生成和编译。 例如spdlog 支持如下两种风格的使用: 作为外部项目,安装后导入 find_package(spdlog REQUIRED) target_link_l...
首先安装 vcpkg, 这里就不多说了, 按照官方文档下载安装即可[1]. 安装完成之后将 vcpkg 安装目录设置为环境变量VCPKG_ROOT. 假设要在项目中使用 spdlog 这个开源的日志工具. 创建一个 cmake 项目, 项目中包含如下几个文件: CMakeLists.txt cmake_minimum_required(VERSION3.20)set(CMAKE_TOOLCHAIN_FILE"$ENV{VC...
点击Generate按钮之后,可以看到D:\env\spdlog-1.x\build编译生成目录下面多出了一个spdlog的VC++工程,如下图所示: spdlog工程 最后在Cmake-Gui界面中,点击Open Project按钮,选择VS2022打开spdlog项目,如下图所示: Open Project 或者直接到D:\env\spdlog-1.x\build目录下,找到spdlog.sln工程文件,直接使用VS2022打...
spdlog通过GNUInstallDirs指明库使用GNU标准安装目录,即生成多个跟安装库有关的路径的变量,形如CMAKE_INSTALL_,CMAKE_INSTALL_FULL_,而在后续通过install指令将库安装到对应路径即可。 设置默认build类型 CMAKE_BUILD_TYPE默认值设为"Release"。还有另一个常用值"Debug"。 # ---# Set...
使用FetchContent (CMake 3.11+) 细心的朋友已经发现了,上述使用ExternalProject_Add的方式引入spdlog是在编译时进行的,也就是说在Configure过程中我们并没有从git上下载项目,这就导致我们无法像submodule那样直接通过add_subdirectory引入项目,而是要预先定义好编译后库文件和头文件的位置,通过target_link_libraries和target...
set_target_properties(spdlog::spdlog PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE"CXX" IMPORTED_LOCATION_RELEASE"${_IMPORT_PREFIX}/lib/spdlog/spdlog.lib" ) 使用Imported Target 的另一个好处是,我们在引入一个依赖时只需要 link 其 Imported Target,不再需要...
CMake 是一个跨平台的构建系统,可以从 CMakeLists.txt 生成不同类型的构建系统(比如 Linux 的 make,Windows 的 MSBuild),从而让构建规则可以只写一份,跨平台使用。 过去的软件(例如 TBB)要跨平台,只好 Makefile 的构建规则写一份,MSBuild 也写一份。 现在只需要写一次 CMakeLists.txt,他会视不同的操作系...
我正在尝试将spdlog1.9.0添加到我的CMake项目中,对于这个项目,我使用VS2019新的基于CMake的项目系统来构建/运行它。当我使用一个非常简单的调用将spdlog包含在我的实现中时,我在尝试构建时得到了一个链接器错误。 #include <spdlog/spdlog.h> App::App() : m_win(0) { if (SDL_Init(SDL_INIT_EVERYTHING...