如何在使用库时修复“错误C1083:无法打开包含文件:'simpleclass.h':没有此类文件或目录”? 我有一个非常简单的C++类,工具是Qt创建者。 我创建了一个非QT项目。 使用下面给出的SimpleClass类 简单类 simpleclass.cpp

如何在使用库时修复“错误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-

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所在的路径


注意:如果首先选择库文件路径,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