在Visual C++中使用Qt制作的库
Use a Qt made library in Visual C++
我用Qt Creator(编译器MSVC2010 32位)创建了一个共享库,对xml文件进行一些操作(当我必须选择模块时,我检查了QtCore,QtXml和QtXmlPatterns)。
这是库的代码:
页眉:
#ifndef CONVERTERSHARED_H
#define CONVERTERSHARED_H
#include "convertershared_global.h" //created automatically by Qt
#include <QString>
class CONVERTERSHAREDSHARED_EXPORT ConverterShared
{
public:
ConverterShared();
bool convert(QString inFileName);
};
#endif // CONVERTERSHARED_H
。.cpp
#include "convertershared.h"
#include <QFile>
#include <QFileInfo>
#include <QDir>
#include <QXmlStreamWriter>
#include <QXmlStreamReader>
#include <QDomDocument>
#include <QMap>
#include <iostream>
#include <fstream>
using namespace std;
ConverterShared::ConverterShared()
{
}
bool ConverterShared::convert(QString inFileName)
{
//process...
}
因此,它创建了一个 .lib 和一个.dll。
当我在Qt项目中使用此库时(包括包含的路径,.pro中的库,将.dll放入exe目录中),一切都很好,我可以创建ConverterShared的实例并使用转换函数。
我的问题是在不使用Qt的Visual Studio(C++ 2010)项目中使用它。所以在项目的属性中,我添加了:
在 C/C++ 中 -> 常规 -> 其他包含目录 -> path/to/convertershared.h(也包含 convertershared_global.h)
在库中 -> 常规 -> 其他依赖项 -> ConverterShared.lib(使用 path/ConverterShared.lib 和不带路径进行测试)
在库中 ->常规 -> 其他库目录 -> 路径/to/lib
然后,在一个.cpp文件中,它找到 convertershared.h 所以我包含它,但是当我编译时,我收到错误:
Cannot open include file QtCore/qglobal.h: No such file or directory
(and then IntelliSense cannot open source file "QtCore/qglobal.h", "QString")
那么如何纠正这一点并在不使用Qt的可视化项目中使用我的Qt lib(编译最终Visual项目的PC不一定安装了Qt)?
我认为您需要定义Qt包含文件的路径,例如我们的qglobal.h等,它们引用自您的convertershared_global.h
文件。例如,在 VS 项目的属性页中,如有必要,C/C++ -> General -> Additional Include Directories
添加$(QTDIR)includeQtCore
和其他路径,以使编译器找到所有包含。
如果将应用程序与使用 Qt 的共享库链接,则还应将应用程序与 Qt 链接并定义包含路径。即使您与Qt链接,您的应用程序也需要一个QCoreApplication
实例和一个事件循环才能工作。
在您的情况下,由于您没有Qt应用程序并希望链接到Qt共享库,因此您可以在共享库的新线程中创建QCoreApplication
的实例,然后运行事件循环,如此处所述。
如果不想将应用程序与Qt链接,可以在运行时加载共享库,并使用如下所示的QLibrary
动态调用其函数。
- 如何在MS Visual Studio 2019中运行QT UI
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- Qt Visual Studio 2015 加载项编译问题
- 将Qt与Visual Studio Code(Windows)一起使用
- QT Framewrok 和 Visual Studio - 图标冲突
- 在Visual Studio中单实例Qt应用程序版本5.11.1中,在所有其他窗口的顶部打开Qt MainWindow
- Qt - 为什么Visual Studio 2019在qml资源中添加10Mb文件后无法再编译我的项目?
- 在Visual Studio 2017中构建Qt可执行文件
- 如何修复Visual Studio的Qt扩展?
- 需要有关使用 Visual Studio 17 将 QT 桌面应用程序打包为 AppX 格式的指导
- Visual Studio中使用Qt外接程序为moc_*预编译的标头
- macOS+Qt+Intellisense上的Visual Studio代码
- Qt在安装Visual Studio 2019和虚幻引擎后无法运行示例应用程序
- C++编译Qt for Visual Studio 2017的问题
- Qt5.9.1 和 Visual Studio 2015 添加了 Qt WebEngine 模块
- Using QT .qrc File with Visual Studio Proj...?
- 不要在 Visual Studio 2012+Qt Visual Studio 加载项 1.2.1 中进行调试
- C++ - Qt - Visual Studio 2010 - 具有GUI和控制台的应用程序
- Qt - Visual Studio -在多台计算机上处理项目
- Qt Visual Studio加载项影子生成