0

我的任务是编写一个有条件地编译为 Windows 下的 Win32 GUI 应用程序或 Linux 下的控制台应用程序的应用程序。

到目前为止,我最大的绊脚石就是弄清楚如何设置这个项目。我通常在 Visual Studio 2012 中工作,并且在创建新的 C++ Win32 项目时可以在控制台应用程序和 GUI 应用程序之间进行选择。我觉得这是在设置一些项目属性和与编译器相关的东西,这将使在 Linux 下编译同一个项目并让它生成控制台应用程序变得困难。

我并不十分关心条件编译的东西,我只是想弄清楚我是否应该通过 Windows 上的命令行而不是使用 Visual Studio 来编译这些东西,以及如何将目标应用程序设置为结束执行此操作时作为 GUI 或控制台应用程序。

希望我已经清楚地解释了自己,我认为很明显我很迷茫。提前感谢您的帮助。

4

3 回答 3

3

这似乎是其中一种情况,您最好通过创建一个包含大部分功能的库,然后为该库添加两个或三个前端以将其功能公开为控制台应用程序或 GUI 程序。

试图将一堆 Win32 GUI 的东西打进一个控制台应用程序项目是没有意义的。

于 2013-03-08T00:22:04.137 回答
0

我建议使用跨平台工具包,例如 wxWidgets 或 Qt。这样,您就不会被绑定到一个特定的平台架构。这些框架还包含有关如何使用各种编译器/开发环境正确设置项目的大量文档。

于 2013-03-08T00:35:19.003 回答
0

这是您可以至少在 Windows 端使用项目的预处理器定义来定义两者的东西。在这里讨论!

Windows 和 Linux 上的 C++ 编译:ifdef 开关

并将您的代码部分样式化为:

#ifdef WIN32   // Windows system specific
#include <windows.h>
#else          // Unix based system specific
#include <sys/time.h>
#endif

继续以这种方式分离所有跨平台代码。不要忘记在 Properties --> Configuration Properties --> C/C++ --> Preprocessor 下将 WIN32 添加到您的项目属性中

于 2015-08-19T02:29:22.087 回答