如何在使用库时修复“错误C1083:无法打开包含文件:'simpleclass.h':没有此类文件或目录”? 我有一个非常简单的C++类,工具是Qt创建者。 我创建了一个非QT项目。 使用下面给出的SimpleClass类 简单类 simpleclass.cpp
testlibrary_global.h 类似地,我有simpleclass.cpp 在构建时,确实创建了TestLibrary.lib和TestLibrary.dll库,但我无法在另一个名为UseLibrary的项目中使用它。 我在一个新项目UseLibrary下创建了一个目录libs,并在那里复制了TestLibrary.lib和TestLibrary.dll UseLibrary.pro文件如下所示 项目UseLibrary中的main.cpp include simpleclass.h-->错误C1083:无法打开包含文件:“simpleclass.h”:没有此类文件或目录。 为什么我会犯这个错误??我读了很多与图书馆创作相关的帖子,我很困惑为什么大多数帖子都有 包括或包括。为什么我们需要这些 至少我从未在代码中使用过这些框架类!在创建库时真的需要这些吗?为什么? 据我所知,我的项目是一个非QT项目,所以我不需要这些。有人能指出我的理解是否正确吗? 我错过了什么?最后,为什么没有包括simpleclass.h头文件???原因 您的包含路径设置为$$PWD/libs: 但是屏幕截图没有在该位置显示simpleclass.h 解决方案 从UseLibrary.pro中删除: 在QtCreator的项目浏览器中的UseLibrary项目上单击鼠标右键,然后选择“添加库” 选择外部库 重要提示:首先单击Include path行上的browse并选择路径,simpleclass.h在其中 现在,单击Library文件行上的browse并选择TestLibrary.lib所在的路径如何在使用库时修复“错误C1083:无法打开包含文件:'simpleclass.h':没有此类文件或目录”? 我有一个非常简单的C++类,工具是Qt创建者。 我创建了一个非QT项目。 使用下面给出的SimpleClass类 简单类 simpleclass.cpp,c++,qt,dll,shared-libraries,C++,Qt,Dll,Shared Libraries,testlibrary_global.h 类似地,我有simpleclass.cpp 在构建时,确实创建了TestLibrary.lib和TestLibrary.dll库,但我无法在另一个名为UseLibrary的项目中使用它。 我在一个新项目UseLibrary下创建了一个目录libs,并在那里复制了TestLibrary.lib和TestLibrary.dll UseLibrary.pro文件如下所示 项目UseLibrary中的main.cpp include simpleclass.h-
注意:如果首先选择库文件路径,QtCreator会错误地使用相同的路径填写“包含路径”框。按照上述步骤可以帮助您解决此问题。包含文件在$$PWD/libs中吗?lib和DLL在那里。。事实上,QT本身添加了这些行,我只是使用文件Browser浏览了libs文件夹。您是否将代码编译为调试代码,还是发布版本?我编译为debugcompile并将其编译为发布版本,然后查看发生了什么。我执行了这些步骤,现在收到不同的错误消息C1083:无法打开包含文件:'QtCore/qglobal.h':没有这样的文件或目录。。是否还需要在include路径中添加框架类标题?@RohitGaneshan,从UseLibrary.pro中删除CONFIG-=qt@RohitGaneshan并添加qt+=widgets。问题已解决。我做了一次清理和重建,现在它工作了。@RohitGaneshan,我很高兴这解决了你的问题!
#ifndef SIMPLECLASS_H
#define SIMPLECLASS_H
class SimpleClass
{
public:
SimpleClass();
void printLine();
};
#endif // SIMPLECLASS_H
#include "simpleclass.h"
#include <iostream>
SimpleClass::SimpleClass()
{
printf("Hello , This is SimpleClass constructor\n");
}
void SimpleClass::printLine()
{
printf(" Printing a Line\n");
}
#include <iostream>
#include "simpleclass.h"
using namespace std;
int main()
{
cout << "Hello World!" << endl;
SimpleClass sc;
sc.printLine();
return 0;
}
QT += widgets
TARGET = TestLibrary
TEMPLATE = lib
DEFINES += TESTLIBRARY_LIBRARY
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
simpleclass.cpp
HEADERS += \
testlibrary_global.h \
simpleclass.h
unix {
target.path = /usr/lib
INSTALLS += target
}
#ifndef TESTLIBRARY_GLOBAL_H
#define TESTLIBRARY_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(TESTLIBRARY_LIBRARY)
# define TESTLIBRARYSHARED_EXPORT Q_DECL_EXPORT
#else
# define TESTLIBRARYSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // TESTLIBRARY_GLOBAL_H
#ifndef TESTLIBRARY_H
#define TESTLIBRARY_H
#include "testlibrary_global.h"
class TESTLIBRARYSHARED_EXPORT SimpleClass
{
public:
SimpleClass();
void printLine();
};
#endif // TESTLIBRARY_H
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp \
main.cpp
win32: LIBS += -L$$PWD/libs/ -lTestLibrary
INCLUDEPATH += $$PWD/libs
DEPENDPATH += $$PWD/libs
#include <iostream>
#include "simpleclass.h" ---> error C1083: Cannot open include file :'simpleclass.h' :no such file or directory.
using namespace std;
int main()
{
cout << "Hello World!" << endl;
SimpleClass sc; --> Unknown Type name 'Simpleclass', # include header itself giving error so obvious issue
sc.printLine();
return 0;
}
INCLUDEPATH += $$PWD/libs
win32: LIBS += -L$$PWD/libs/ -lTestLibrary
INCLUDEPATH += $$PWD/libs
DEPENDPATH += $$PWD/libs