2

我是来自 Visual Studio 的 QT Creator 的新手。我有一个包含两个项目的会议。一个是带有一些我打算用于其他目的的类的 DLL。另一个是使用 DLL 中的一些类的可执行控制台应用程序。

我目前在 QT Creator 中同时拥有这两个项目。我可以使用相对路径“../MyPrject/header.h”在我的 EXE 项目中包含来自 DLL 的头文件。但是我如何让QT Creator链接然后将DLL复制到可执行的调试文件夹中进行调试。

我做这一切都错了吗?有没有更好的办法?如果它包括向 .pro 文件添加代码,请提供一个链接,以便我了解更多信息。

4

3 回答 3

0

GwyenBleidD 为包含 DLL 提供了一个很好的起点。

在此处输入图像描述

然而,我已经养成了直接在这里修改 .pro 文件的习惯,老实说,我更喜欢在出现问题时修改 .pro 文件。

假设我想使用winsock DLL

在 .pro 文件中,我首先指定 .dll 对应的 .lib 文件:

# WinSock2 library (ws2_32.lib file)
LIBS += -lws2_32

# Path to the WinSock2 library
LIBS += -L"c:/mylibraries/"

此外,您需要在此处指定头文件的包含路径:

INCLUDEPATH += "c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/INCLUDE"

第三,在我的代码中,我必须确保包含它的标题:

// I ASSUME it'll be found under something like the 
// Visual Studio/VC/INCLUDE directory mentioned above.
#include <winsock2.h>  

最后,您需要确保您的应用程序可以找到 .dll 文件,该文件通常指向使用 %PATH% 环境变量。

关于您的设置,我会确保您的子项目已配置,以便库首先编译(显然)。然后确保 .Pro 项目中的 LIBS 变量根据构建配置(调试|发布)正确指向您的 .lib 目标。

Qt 的 PRO (qmake) 并不像某些人想象的那么糟糕。只要给它半个小时到一个小时的时间,你就会掌握它的窍门。我假设您对库和 DLL 以及其他内容有深入的了解。

http://qt-project.org/doc/qt-5.0/qtdoc/qmake-manual.html

于 2013-09-17T17:06:19.490 回答
0

您应该在这些项目之间建立一些依赖关系。

  1. 打开两个项目 - 你已经完成了。
  2. 在编辑器视图上,右键单击exe-project并选择添加库...
  3. 按照创建者提示添加它。

第二种选择:您可以制作子项目。遵循QtCreator: Creating Projects文档(Qt Creator 中的帮助视图)

于 2013-09-17T16:41:17.593 回答
0

The right way is to switch on CMake based project and keep exe and dll within one root project. The main benefit of this decision is IDE independent approach: you can use Qt Creator, CLion, Visual Studio without any changes in project definition. As the start point consider to see the example project https://github.com/anatoly-spb/cmake_exe_dll

于 2019-11-16T11:22:38.360 回答