【发布时间】:2014-11-25 12:08:38
【问题描述】:
首先,请原谅我对这些问题的无知,我已经进行了搜索,目前还没有找到任何全面的答案。
我计划学习如何为 Windows 进行开发,但是我非常喜欢 GNU 工具链,并且在我对底层基础知识感到更加熟悉之前,我真的不想继续使用像 Visual Studio 这样的大型环境。
据我了解,可以下载 Windows SDK,其中包含构建原生 Windows 应用程序所需的头文件和库。
SDK 真的只是库和头文件的集合吗?如果是这样,按照我的逻辑,应该可以将 MinGW 指向这些库/头文件,然后像往常一样简单地构建。
当我使用 Visual Studio 构建时,我看不到正在定义的预处理器指令、链接的内容等等,因为我仍在学习,我希望能够准确地知道发生了什么,最好是我必须手动定义,链接等。因此问题。
那么,我想知道的是:我的逻辑是否正确?
再次抱歉,如果问题是初级的,我仍在学习。
附:我打算在 Windows 环境中开发 Windows 应用程序,这不是关于交叉编译的问题。
谢谢!
【问题讨论】:
-
手动定义、链接等
cl是编译器,link是链接器。走吧:] -
所以从命令行我可以像 gcc -c 和 ld 一样简单地调用 cl 和链接?这会迫使我自己链接每个 WinAPI 库/定义所有预处理器宏吗? :) 基本上,我想拥有所有没有为我完成的好东西,这样我就可以了解真正发生的事情。
-
首先决定是否需要MinGW。已经不清楚了。不,MS 程序的命令行选项当然与 GCC 不完全相同(尽管有些相同)。并阐明你想用预处理器实现什么。您可以编写程序而无需定义任何内容。你想自己写标题吗?为什么?
-
实际的工具链与我无关。我只是希望能够有一个不太高级的工具来创建 Windows 程序。我想从命令行编译并且必须专门链接相关的库。 Visual Express 为我完成了这一切。我不想要那个。任何工具链都是公平的游戏!
-
我不想编写标题,我想对预处理器定义进行特定控制,例如确定 Unicode 等内容的定义。我想了解我需要链接哪些库而不是IDE 默默地为我做这件事。它与重新发明轮子无关,只是更接近底层实现的现实!
标签: c++ visual-studio gcc