用代码编译的程序::Block加MinGW,但使用标准Windows库



每个人。

我是c++的新手,我在c#上有一些经验。我想创建一个纯c++开发环境,并使用标准的c++库。我的操作系统是Windows。

我选择代码::block+MinGW在Windows上构建一个纯粹的开发环境。我直接选择代码::块安装包集成了MinGW。然后我开始制定我的第一个学习项目。在这个项目中,我使用函数"stat"从标准库中获取文件信息。我通过了编译。但在操作这个程序的过程中,我检查了"调用堆栈"。找到了从文件"C:\WINDOWS\system32\msvcrt.dll"调用的函数"stat"。我从互联网上查看了这个dll,发现这个文件是一个微软WINDOWS库文件。很明显,这个dll文件没有函数"stat",而是有函数"_stat"。

那么我该如何解决这个问题呢?我想使用标准的c++库,而不是微软的windows库。因为以后,我想把这个项目转移到linux环境中。因此,总的来说,我如何构建开发环境来满足我的需求。

如果要为windows构建,则必须使用windows系统库。您只需根据目标系统链接其中一个或另一个即可。库只是提供底层实现,不同的操作系统不同。

在您的特定示例中,stat是一个由标准系统头定义的函数,但其底层实现因系统而异。整个函数可能是从msvcrt中提取的,但我猜测msvcrt恰好实现了一个处理所有系统特定内容的配套函数。

最新更新