我正在尝试将OpenXLSX添加到我的QtCreator项目中,但是在this guide之后,我似乎无法让QtCreator找到头文件。
QtCreator手册中提到了该库未使用的.lib文件,所以我对该指南有些迷惑。我四处搜寻,并尝试将OpenXLSX/@library/@openxlsx/interfaces/c++/
中的所有标头和源添加到项目树中的标头和源目录中。但是我仍然得到
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>
^~~~~~~~~~~~~~~~~~~
答案 0 :(得分:0)
首先,您必须构建OpenXLSX项目来获取该库。该项目使用cmake进行生成。您需要首先生成工作区:
列出所有可用的生成器
cmake --help
选择要使用的那个,然后:
cmake . -G "Your generator"
根据生成器构建项目。库和标头将复制到 install 目录中。
在.pro文件中,添加以下行:
INCLUDEPATH += /path/to/OpenXLSX/include
LIBS += -L/path/to/OpenXLSX/lib -lopenxlsx.lib
第一个允许您包括OpenXLXS标头。链接器将使用第二行将库链接到您的应用。
如果要在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中,如果右键单击项目,则可以使用专用向导添加库(上下文菜单中的Add Library
选项)。它将在* .pro