16得票1回答
crtbegin.o、crtbeginT.o和crtbeginS.o有什么区别?

我正在尝试使用 ld 直接链接以隔离构建问题。 当我包含 /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so 时,我遇到了一些问题:ac-aaa.o: In function `__static_initialization_and_destruct...

16得票5回答
C++ - 使用_CrtDumpMemoryLeaks()进行内存泄漏测试 - 不输出行号

我正在使用Visual Studio 2010和SDL开发游戏。我发现了_CrtDumpMemoryLeaks()宏并尝试了一下。调用_CrtDumpMemoryLeaks()确实会将内存泄漏信息打印到输出窗口,但它不会显示出现泄漏的位置。 我阅读了MSDN上的文章《启用内存泄漏检测》,其中...

15得票4回答
如何将在Visual Studio 2015中的C++项目更新为使用新的通用CRT?

在将我的项目升级到新的平台工具集v140后,VS2015构建失败,出现链接器错误:LNK1104无法打开文件“libucrt.lib”。 由于新的通用CRT,这个库似乎已经被移动,如本文所述:http://blogs.msdn.com/b/vcblog/archive/2015/03/03/...

13得票2回答
“getenv...函数...可能不安全”- 真的吗?

我正在使用MSVC编译一些使用标准库函数(如getenv(),sprintf等)的C代码,并将/W3设置为警告。 MSVC告诉我:   'getenv':此函数或变量可能不安全。请考虑改用_dupenv_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。 问题: ...

13得票2回答
如何解决交叉编译中的crt0.o链接问题?

如何添加 ctr0.o ? 我收到了这个错误: yagarto-4.7.2/bin/arm-none-eabi-ld: cannot find crt0.o: No such file or directory collect2: error: ld returned 1 exit sta...

12得票5回答
如何使用标准C++将UTF-8转换为ANSI

我从数据库中读取了一些字符串,它们以UTF-8格式存储在char*中(你知道,“á”被编码为0xC3 0xA1)。但是,为了将它们写入文件,我首先需要将它们转换为ANSI(无法使用UTF-8格式创建文件...它只能被视为ANSI格式),这样我的“á”就不会变成“á”了。是的,我知道一些数据将...

12得票2回答
验证库文件(.lib)中使用的CRT

我如何检查一个Windows中的静态库(.lib)链接到了哪个运行时库? 我正在使用/MDd编译我的项目,我猜想我链接的某个库正在使用/MTd多线程调试。Error 7 error LNK2005: "public: __thiscall std::_Lockit::~_Lockit...

11得票6回答
使用_crtBreakAlloc来查找内存泄漏 - 标识符“_crtBreakAlloc”未定义。

我试图在观察窗口中使用_crtBreakAlloc,如此链接所建议的那样,但是值行显示“标识符“_crtBreakAlloc”未定义”,它根本不起作用。我做错了什么?顺便说一下,我正在使用Visual Studio。示例代码:#define _CRTDBG_MAP_ALLOC #include...

11得票1回答
检查运行时静态库或dll使用了哪个。

Windows SDK中是否有工具可用于检查库使用的CRT版本?例如,我有一个*.lib文件,如何检查它是否使用/MDd标志或/MT标志进行编译?同样,如何检查DLL或EXE文件的情况?可以使用dumpbin完成此操作吗?

11得票4回答
如何在没有完整的Visual Studio 2005的情况下安装VC80CRT调试运行库?

我无法运行Debug版本的SDK应用程序,因为它需要 VC 8 和 VC 9 版本的 CRT。但是对于插件开发,它仅需要 Visual Studio 2008,这正是我需要的。 我该如何在 Windows7 上安装2005年的Debug运行时?我无法弄清楚如何使它们在应用程序本地运行,也无法...