LimeReport 下载、编译与Qt项目集成

LimeReport 是一个基于 Qt 框架、完全开源(LGPL v3许可)的专业报表生成引擎,弥补了 Qt 原生打印模块在复杂报表场景下的功能短板。它支持可视化设计器,能直接对接 C++ 数据模型。


第一步:源码下载与编译

方法一:使用 Git 克隆(推荐)

git clone https://github.com/fralx/LimeReport.git

方法二:直接下载 ZIP 包
如果网络条件不允许使用 Git,可以直接访问 LimeReport GitHub 仓库,点击绿色的 Code 按钮 -> Download ZIP

设置 C++ 标准(重要)
如果遇到的编译错误(inline 变量问题),请在 LimeReport 的 .pro 文件中启用 C++17 标准。

  1. 用 Qt Creator 打开 LimeReport/limereport.pro 文件。

  2. 在文件开头添加以下任意一行配置:

    # 方法一:使用 Qt 内置配置
    CONFIG += c++17
    
    # 方法二:如果方法一不生效,直接指定编译器的标准
    QMAKE_CXXFLAGS += -std=c++17
    # 如果你在 Windows 上使用 MSVC,请用下面这行:
    # QMAKE_CXXFLAGS += /std:c++17
    
    方法三(我尝试了前两种,都不行,因为我的环境不支持C++17)
    找到代码中报错的inline部分,删除inline,在最前面加上static,比如:
    将:
    const int inline COLLECTION_TYPE_ID = qMetaTypeId<ACollectionProperty>();
      修改为:
    static const int COLLECTION_TYPE_ID = qMetaTypeId<ACollectionProperty>();
    

    如果你的项目是使用 CMake 构建的,可以直接跳过此步。

使用 Qt Creator 编译(我用的)

  1. 使用 Qt Creator 打开 LimeReport/limereport.pro 文件。
  2. 在左侧的“项目”面板中,选择你使用的 Kit(例如 Desktop Qt 5.15.2 MinGW 64-bit)。
  3. 选择 Release 构建模式。
  4. 点击左下角的锤子图标(构建)进行编译。

使用命令行(Linux/macOS/MinGW)

  1. 打开终端,进入到 LimeReport 目录:
    cd LimeReport
    
  2. 执行 qmake 和 make:
    qmake
    make
    

编译成功后,在build里面找库,需要找到这两个关键产物:

  • 动态链接库文件:Windows 下是 limereport.dll,Linux 下是 liblimereport.so。它位于构建目录的子文件夹(如 librelease/lib/)中。
  • 头文件目录:编译时,编译器需要知道头文件的存在,它们通常位于 LimeReport/include 下。

3. 第二步:集成到你的 Qt 项目

在你的 LimeReport 源码根目录下,应该能找到一个名为 build 的文件夹。在里面可以分别找到 debug 和 release 两个子目录,它们分别对应两种构建模式。

进入 debug/lib 或 release/lib 目录,看看里面是否有类似 limereportd.a (Linux) 或 limereportd.lib (Windows) 的文件。

如果这些文件不存在,你需要重新编译。建议分别用 Debug 和 Release 两种模式各编译一次,以确保同时获得 limereport 和 limereportd 两种库文件。

在 Qt 项目的 .pro 文件中,需要明确告诉链接器,在不同的构建模式下使用对应的库文件。

可以检查并调整,将原来的 LIBS += … 部分修改成类似下面的形式:

# 包含头文件(请确认路径正确)
INCLUDEPATH += $$PWD/3rdparty/include

# Debug 模式链接 limereportd
CONFIG(debug, debug|release) {
    LIBS += -L$$PWD/3rdparty/lib/debug -llimereportd
}
# Release 模式链接 limereport
CONFIG(release, debug|release) {
    LIBS += -L$$PWD/3rdparty/lib/release -llimereport
}

或者,也可以使用更简洁的条件判断写法:

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/3rdparty/lib/release/ -llimereport
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/3rdparty/lib/debug/ -llimereportd

6. 总结与资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yy__xzz

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

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

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

打赏作者

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

抵扣说明:

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

余额充值