c++ - .crt 部分?这个警告是什么意思?

标签 c++ visual-studio-2010 msvcrt critical-section static-initializer

我最近收到这个警告 (VC++ 2010)

警告 LNK4210:.CRT 部分存在;可能有未处理的静态初始化器或终止器

我假设这是临界区。我的操作系统类(class)已经有一段时间了,所以我真的不明白这意味着什么。如果我没记错的话,关键部分使用共享资源。那么这个警告是如何相关的,它究竟意味着什么?

最佳答案

不,CRT = C 运行时。它是任何程序完成工作所需的支持库。像 strcpy() 这样的东西住在那里。当您的代码包含需要在程序开始运行之前初始化的全局变量时,您的 .obj 文件中会出现一个“.CRT 部分”。 CRT 会负责这一点。

这没什么不寻常的。问题是链接器没有看到 CRT 链接到您的程序中。你以某种方式编写了对 CRT 代码没有任何依赖的代码,除了初始化要求。很奇怪,从来没有听说过任何人有这个问题。按照 the documentation 中的 list 进行操作看看其中一个是否符合您的情况。

关于c++ - .crt 部分?这个警告是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529003/

相关文章:

windows - 检查运行时静态库或 dll 使用的是什么

python - PyCharm:msvcrt.kbhit() 和 msvcrt.getch() 不起作用?

C++。 RNG 是否有可能在使用相同种子的两台不同机器中给出不同的随机变量?

c++ - 空参数包扩展不同于手动空参数包

visual-studio-2010 - Visual Studio 2010不会将所有文件发布到文件系统

C++ 是否有任何关于如何使用句柄的教程?

c++ - Visual Studio _CrtDumpMemoryLeaks 总是跳过对象转储

c++ - 链接 Visual Studio 2008 Express '/Mtd' 设置时 Boost 崩溃

C++ 省略或添加额外字符

c# - 为什么这个简单的 RESTful WCF 服务会因 404 错误而失败?