是否可以在所有平台上使用vs2010 c++和Qt



我听说Qt提供了一个独立于操作系统的层。为了做好大多数任务,程序员通常会做。要达到最佳性能,代码必须为c++同时也有mono提供一些到c++的翻译,还有Dot24一个android c#内核。

目前,由于硬件原因,我们所做的事情无法在单声道中完成。所以我想回到纯C++和QT,而不是C#。

现在我在想什么c++本身就是一个标准,也应该独立于linux/windows/unix/microboards/Ce设备等。

但如果我使用VS2010C++和QT编写,我的代码会在各种平台上运行吗。作为visual studio,创建一个基于windows的exe?或者我应该使用另一个IDE来用Qt编写真正独立的c++吗?

C++是一种编译语言,无论使用什么IDE/编译器,它都会为特定平台生成可执行文件。但Qt的要点是,只要避免特定于平台的代码,就可以在各种平台上重新编译源代码,为每个受支持的平台生成不同的可执行文件。因此,就资源而言,使用VC++并不是一个限制。

限制来自于构建系统:Visual C++对项目文件使用自己的格式,这与makefiles&因此,如果你的项目是作为一个VC++项目开始的,你必须手动重新创建一个Makefile或类似的文件才能在其他平台上编译。

为了避免这种问题,Qt提供了qmake,这是一个提供.pro文件(大致相当于.vcproj)的工具,能够为各种平台生成构建文件:Windows上的.vcproj/.dsp,Linux和OS X上的Makefile,OS X上可能还有其他平台上的XCode项目。

所以重点是:你可以使用VisualStudio,但你应该使用Qt的构建系统,以便能够将你的应用程序移植到其他平台,而不会有任何麻烦。

此外,您可以考虑使用Qt Creator,它直接支持.pro文件,与Qt功能集成得特别好,适用于Windows、Linux和OS X;不利的一面是,我注意到VisualStudio中的调试器往往要好得多。

如果您有使用Qt的跨平台C++代码,则可以使用Visual C++(Visual Studio中的编译器)编辑和编译Windows版本。

不过,Visual C++仍然只创建Windows可执行文件,因此,要在其他平台上实际构建和运行,您必须获得另一个编译器(但提供相同的源代码)。

makefiles的一个痛点是:VisualStudio有自己的项目格式,无法处理标准的makefiles。其他平台也不使用Visual Studio项目。Visual Studio确实提供了一个名为nmake的工具,它类似于POSIX或GNU make,但除了最琐碎的功能外,仍然不兼容。当然,cl.exe使用的命令行开关与其他编译器不同。因此,您最终将维护一组C++文件,但要维护两组或多组makefile。

是的,可以在Visual Studio中开发可在其他平台上使用的Qt应用程序。例如,对于我在医学成像研究方面的工作,我在Visual Studio 2010中使用CMake生成的Visual Studio项目文件开发了所有基于Qt的应用程序,有时在QtCreator或KDevelop下的linux中使用相同的CMakeLists.txt为这些IDE生成项目文件。只要我远离特定于平台的代码,移植就不会那么困难。

为了开发qt应用程序,qtcreator是最好的ide,qtcreative可在linux和mac上使用,因此您可以轻松地打开您的qt项目并在任何平台上进行构建。

最新更新