使用可执行文件和DLL项目配置Qt Creator

时间:2013-09-17 16:13:25

标签: c++ dll qt-creator multiple-projects

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

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

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

3 个答案:

答案 0 :(得分:0)

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

  1. 打开两个项目 - 你已经完成了。
  2. 在编辑器视图中,右键单击exe-project并选择添加库...
  3. 按照创建者的提示添加它。
  4. 第二个选项:您可以创建子项目。关注文档中的QtCreator: Creating Projects(Qt Creator中的帮助视图)

答案 1 :(得分:0)

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

enter image description here

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

假设我想使用winsock DLL

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

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

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

此外,您还需要在此处为​​标头文件指定include path

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%环境变量指向。

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

Qt的PRO(qmake)并不像有些人那样糟糕。只要给它一个半小时到一个小时,你就可以了解它。我假设你对libs和DLL有很好的理解,但是没有。

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

答案 2 :(得分:0)

正确的方法是打开基于CMake的项目,并将exe和dll保留在一个根项目中。该决定的主要好处是独立于IDE的方法:您可以使用Qt Creator,CLion,Visual Studio,而无需更改项目定义。作为起点,请考虑看示例项目https://github.com/anatoly-spb/cmake_exe_dll