gpt4 book ai didi

c++ - 如何将第三方库添加到 QtCreator?

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:24 26 4
gpt4 key购买 nike

我正在尝试添加 OpenXLSX到我的 QtCreator 项目但关注 this guide我似乎无法让 QtCreator 找到头文件。

QtCreator 手册提到了这个库不使用的 .lib 文件,所以我有点迷失了那个指南。我四处搜索并尝试将 OpenXLSX/@library/@openxlsx/interfaces/c++/ 中的所有 header 和源添加到项目树中的 header 和源目录中。然而我还是得到了

exceltest.cpp:3: error: 'OpenXLSX.h' file not found

第3行是

#include "OpenXLSX.h"

我也试过

#include "3rdparty/OpenXLSX/@library/@openxlsx/interfaces/c++/headers/OpenXLSX.h"

3rdparty目录与exceltest.pro在同一位置

我也尝试过使用尖括号。

我不需要 OpenXLSX 的任何高级功能,只需读取和写入我指定为 .xlsx 或 .xls 的单元格的值。我也不赞同使用 OpenXLSX 的想法,所以如果有人知道 excel 任何可以更好地工作的库,我对这个想法持开放态度。

编辑:所以在我将标题和源代码添加到项目树之后,我的 exceltest.pro 看起来像 this .我试着把这条线

#include "3rdparty/OpenXLSX/@library/@openxlsx/interfaces/c++/headers/OpenXLSX.h"

进入 exceltest.h 而不是 exceltest.cpp,我得到了不同的错误。 QtCreator 似乎找到了库文件,但是库有问题吗?这些是错误:

In file included from J:/George/Coding/Qt/Test/exceltest/3rdparty/OpenXLSX/@library/@openxlsx/interfaces/c++/headers/XLCell.h:49:0,
from ..\exceltest\3rdparty\OpenXLSX\@library\@openxlsx\interfaces\c++\sources\XLCell.cpp:5:
J:/George/Coding/Qt/Test/exceltest/3rdparty/OpenXLSX/@library/@openxlsx/interfaces/c++/headers/XLDefinitions.h:57:35: warning: multi-character character constant [-Wmultichar]
constexpr uint32_t maxRows = 1'048'576;
^~~~~
J:/George/Coding/Qt/Test/exceltest/3rdparty/OpenXLSX/@library/@openxlsx/interfaces/c++/headers/XLDefinitions.h:59:36: warning: missing terminating ' character
constexpr uint16_t maxCols = 16'384;
^
J:/George/Coding/Qt/Test/exceltest/3rdparty/OpenXLSX/@library/@openxlsx/interfaces/c++/headers/XLDefinitions.h:59:36: error: missing terminating ' character
constexpr uint16_t maxCols = 16'384;
^~~~~
..\exceltest\3rdparty\OpenXLSX\@library\@openxlsx\interfaces\c++\sources\XLCellRange.cpp:5:10: fatal error: XLCellRange.h: No such file or directory
#include <XLCellRange.h>
^~~~~~~~~~~~~~~
compilation terminated.
..\exceltest\3rdparty\OpenXLSX\@library\@openxlsx\interfaces\c++\sources\XLCellReference.cpp:5:10: fatal error: XLCellReference.h: No such file or directory
#include <XLCellReference.h>
^~~~~~~~~~~~~~~~~~~

最佳答案

首先,您必须构建 OpenXLSX 项目以获取库。该项目使用 cmake 进行生成。您需要先生成工作区:

列出所有可用的生成器

cmake --help

选择你要使用的那个,然后:

cmake . -G "Your generator"

根据您的生成器构建您的项目。库和 header 将复制到安装 目录中。

在您的 .pro 文件中,添加以下行:

INCLUDEPATH += /path/to/OpenXLSX/include
LIBS += -L/path/to/OpenXLSX/lib -lopenxlsx.lib

第一个允许您包含 OpenXLXS header 。链接器将使用第二行将库链接到您的应用。

如果您想在 Windows 或 Linux 上构建项目,您可能需要使用不同版本的库。您可以使用以下语法:

# On Windows in release mode
win32:CONFIG(release, debug|release): LIBS += -L/path/to/OpenXLSX/lib -lopenxlsx.dll

#On Windows debug mode
else:win32:CONFIG(debug, debug|release): LIBS += -L/path/to/OpenXLSX/lib -lopenxlsx_debug.dll

#On Linux debug and release
else:unix: LIBS += -L/path/to/OpenXLSX/lib -lopenxlsx.so

在 Qt Creator 中,如果右键单击您的项目,您可以使用专用向导添加库(上下文菜单中的添加库选项)。它会在你的 *.pro 中添加你需要的一切

关于c++ - 如何将第三方库添加到 QtCreator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56643249/

26 4 0
文章推荐: java - 如何创建一对一的单例关系
文章推荐: bash - 在 bash 脚本中获取调用者脚本的名称
文章推荐: javascript - 用自定义图像替换