QtCreator的几个问题

时间:2011-07-26 13:51:29

标签: c++ qt qt-creator

我正在开发一个应该在Qt中编写GUI的项目。我在考虑使用QtCreator作为开发IDE,但是我遇到了一些问题。该项目应该有一个dll文件,它不应该依赖于任何qt库/模块,它应该只使用winapi,它应该用x86和x64编译。所以我的问题是:

  • 是否可以使用QtCreator编译一个对qt模块没有任何依赖性的dll。如果是,怎么样?
  • 是否可以使用MinGW x86& x64编译单个项目?如果是这样,我如何指定使用哪个编译器?

这是我与Qt的第一个项目,我不是C ++大师,所以请尽可能详细地描述细节:-) 非常感谢您的帮助。

更新


好吧,我试着像Berk建议的那样编译项目,但我还是有问题。输出依赖于LIBGCC_S_DW2-1.DLL和MSVCRT.DLL。是否可以删除对LIBGCC_S_DW2-1.DLL的依赖,并在我的exe / dll中链接MSVCRT.DLL(就像MS VC一样)。

1 个答案:

答案 0 :(得分:1)

您可以将Qt Creator用作纯C ++ IDE。它支持通用项目(qtcreator项目),cmake和qmake。

  • 使用通用项目,您必须定义所有make脚本。我不推荐这个。
  • 使用cmake你可以做很多事情,但我没有任何经验。
  • 使用qmake您的项目取决于qmake工具。但是您的应用程序不必依赖任何qt库。为此,您需要将CONFIG -= qt标志添加到qmake项目文件中。

我推荐qmake方法。您将获得有关Qt Creator的基于qmake的项目的最佳体验。

您可以通过Qt Creator的界面进行操作。您需要先定义两个编译器。

修改

正如我可以看到这些依赖关系,你的qmake是由mingw编译的。这些是mingw的依赖。所以你无法避免LIBGCC_S_DW2-1.DLL使用mingw。所有依赖于Qt的dll都命名为Qt * .dll。因此,您的库未与任何Qt库链接。

您需要使用Microsoft Visual C ++编译器。

对于基于qmake的项目,Qt Creator从检测到的Qt目录中确定编译器,链接器信息。如果你的Qt版本是用mingw编译的,它也会为你的项目使用mingw。如果需要使用其他编译器进行编译,则有2个选择:

  • 使用其他首选编译器编译Qt。 (可能需要几个小时!)
  • 使用您首选的编译器信息进行新的构建配置。

第一个对基于Qt的项目至关重要。如果你还要编译基于Qt的部件。我认为你应该用MSVC编译器(-mkspec win32-msvc20xx)编译Qt。然后,您可以将新的编译器目录添加到Qt版本(选项 - > Qt)并使用它。这很容易。

但是如果你不使用任何Qt部件。编译qt不是一个好选择。在Qt Creator中为项目创建新的构建配置,并设置/覆盖一些变量。 (您需要覆盖qmake的spec命令切换到win32-msvc20xx,然后您需要将MSVC编译器路径添加到环境变量。还需要覆盖所有构建步骤的make命令到nmake或jom)

正如你所说,你的项目的GUI是用Qt编写的。第一种方法对你来说会更好。