【日志工具】g3log_3_配置&搭建

配置、构建、打包、安装和测试g3log

使用g3log的示例项目

你可以在g3log_example_integration找到静态和动态构建的g3log项目集成示例

构建独立的试用版非常简单,如下所示:

git clone https://github.com/KjellKod/g3log
cd g3log
mkdir build
cd build

前提条件

假设您已经安装了出色的C++14编译器,您还需要以下工具从源代码构建g3log:

  • CMake (必需)

    g3log可以使用CMake作为在Windows、Linux和OSX上配置、构建、安装、打包和测试的一站式解决方案。

  • Git (可选但推荐)

    在搭建g3log时,你可以使用git从仓库的历史提交中查看软件版本,如果你不想这样,或者你没有git权限,你可以从GitHub Releases页面下载源文件,这样你就获取不到提交记录,你可以将下面这些作为CMake的传参传入进行构建,查阅issue获得更多信息

    cmake -DVERSION=1.3.2  ..
    

配置选项

g3log提供以下CMake选项(和默认值):

$ cmake -LAH # List non-advanced cached variables. See `cmake --help` for more details.

...

// Fatal (fatal-crashes/contract) examples
ADD_FATAL_EXAMPLE:BOOL=ON

// g3log性能测试
ADD_G3LOG_BENCH_PERFORMANCE:BOOL=OFF

// g3log单元测试
ADD_G3LOG_UNIT_TEST:BOOL=OFF

// 使用DBUG日志级别而不是DEBUG。
// 默认情况下DEBUG是调试级别
CHANGE_G3LOG_DEBUG_TO_DBUG:BOOL=OFF


// Windows only: Use __FUNCSIG__ instead of the default __FUNCTION__ 
// to show LOG function location
// WARNING: using this in heavily templated code, like boost can expand
// the function name into massive size
WINDOWS_FUNCSIG:BOOL=OFF


// gcc/clang only: 使用__PRETTY_FUNCTION__替代默认的__FUNCTION__去展示LOG函数位置
// 警告:在类似boost的大量模板化的代码中使用它,会将函数名大小扩大
PRETTY_FUNCTION:BOOL=OFF


// 指定单个配置生成器上的生成类型
// 可能值为 empty, Debug, Release, RelWithDebInfo, MinSizeRel, …
CMAKE_BUILD_TYPE:STRING=

// 安装路径前缀,前缀在安装目录上。
// UNIX默认为/usr/local
// Windows默认为c:/Program Files/${PROJECT_NAME}
CMAKE_INSTALL_PREFIX:PATH=

// The prefix used in the built package.
// 在Linux上,如果没有设置此选项:
// 1) 如果指定了CMAKE_INSTALL_PREFIX,那么它将被
//    通过g3log设置CMAKE_INSTALL_PREFIX的值
// 2) 否则,它将被g3log设置为/usr/local
CPACK_PACKAGING_INSTALL_PREFIX:PATH=

// 在Visual Studio收到致命异常时启用断点,仅在__DEBUG模式下
DEBUG_BREAK_AT_FATAL_SIGNAL:BOOL=OFF

// Vectored exception / crash handling with improved stack trace
ENABLE_FATAL_SIGNALHANDLING:BOOL=ON

// Vectored exception / crash handling with improved stack trace
ENABLE_VECTORED_EXCEPTIONHANDLING:BOOL=ON

// iOS库版本
G3_IOS_LIB:BOOL=OFF

// 记录完整文件名
G3_LOG_FULL_FILENAME:BOOL=OFF

// 构建共享库
G3_SHARED_LIB:BOOL=ON

// 构建共享运行库MSVC
G3_SHARED_RUNTIME:BOOL=ON

// 打开/关闭日志级别
// 禁用的级别将不会将该级别的日志推送到接收器
// 默认情况下禁用动态日志记录
USE_DYNAMIC_LOGGING_LEVELS:BOOL=OFF

//在日志捕获期间使用动态内存为消息缓冲区
USE_G3_DYNAMIC_MAX_MESSAGE_SIZE:BOOL=OFF

...

有关其他配置选项上下文和注释,请参阅Options.cmake

如果你想让一切保持原样,那么你应该:

cmake ..

您也可以从命令行指定上面列出的一个或多个选项。例如,在Windows上:

cmake .. -G "Visual Studio 15 2017"
         -DG3_SHARED_LIB=OFF
         -DCMAKE_INSTALL_PREFIX=C:/g3log
         -DADD_G3LOG_UNIT_TEST=ON
         -DADD_FATAL_EXAMPLE=OFF

使用Visual Studio 2017将g3log构建为静态库,头文件和库将被安装到C:\g3log ,当从源代码安装时,请启用单元测试,但不要构建致命崩溃示例

Windows上的MinGW用户可能会发现他们应该使用不同的生成器:

cmake .. -G "MinGW Makefiles"

在Linux上通过make install安装时,默认头文件和库将被安装到/usr/local,你可以通过以下方式覆盖:

cmake .. -DCMAKE_INSTALL_PREFIX=/usr

这样g3log将被安装到/usr而不是/usr/local

Linux/OSX包维护人员可能会对CPACK_PACKAGING_INSTALL_PREFIX感兴趣进行修改,例如:

cmake .. -DCPACK_PACKAGING_INSTALL_PREFIX=/usr/local

构建命令

配置完成后,您可以使用以下命令构建g3log:

# Suppose you are still in the `build` directory. I won't repeat it anymore!
cmake --build . --config Release

您也可以使用系统方式构建g3log

On Linux, OSX and MinGW:

make

On Windows:

msbuild g3log.sln /p:Configuration=Release

Windows用户还可以打开生成的Visual Studio构建它

安装

以CMake方式从源代码安装:

cmake --build . --target install

Linux用户还可以使用:

sudo make install

您也可以先创建一个包,然后用它安装g3log。见下一节。

打包

A CMake way:

cmake --build . --config Release --target package

or

cpack -C Release

如果在上一步中已经构建了整个库,也可以在Windows上生成一个ZIP包,在Linux上生成一个DEB包。

Linux users may also use a Linux way:

make package

如果你想使用不同的包生成器,你应该指定一个-G选项中。

On Windows:

cpack -C Release -G NSIS;7Z

这将创建一个可安装的NSIS包和一个7z包。

附注: 要使用NSIS生成器,您应该首先安装NSIS

On Linux:

cpack -C Release -G TGZ

这将为您创建一个.tar.gz归档文件。

完成后,您可以将包文件安装或解压缩到目标计算机上。例如,在Debian或Ubuntu上:

sudo dpkg -i g3log-<version>-Linux.deb

这样会将g3log库安装到CPACK_PACKAGING_INSTALL_PREFIX.

测试

默认情况下不会生成测试,要启用单元测试,您应该打开ADD_G3LOG_UNIT_TEST.

假设构建过程已经完成,那么您可以使用以下命令运行测试:

ctest -C Release

or:

make test

Linux用户可以查看所有测试的详细日志输出::

cd build;
../scripts/runAllTests.sh

CMake 模块

G3 log附带了一个CMake模块。安装完成后,可以在${CMAKE_INSTALL_PREFIX}/lib/cmake/g3log找到, 用户可以在基于CMake的项目中使用g3log:

find_package(g3log CONFIG REQUIRED)
target_link_libraries(main PRIVATE g3log)

为了确保CMake可以找到g3log,您还需要告诉CMake在哪里搜索它:

cmake .. -DCMAKE_PREFIX_PATH=<g3log's install prefix>

配置选项

构建选项在文件Options.cmake中定义了

构建选项被生成并保存到头文件中,这样就避免了在客户端源代码中设置define选项

黎明就在眼前

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡泡吐泡泡啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值