- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎我整个成年生活都被 VC++ 链接器提示或犹豫所折磨,因为各种库不同意使用哪个版本的运行时库。我从来没有心情去掌握那个令人沮丧的主题。所以我只是试着弄乱它,直到它起作用。错误消息永远不会有用。微软关于这个主题的文档也不是——至少对我来说不是。
有时它找不到函数 - 因为名称修改不是预期的?有时它拒绝混搭。有时它只是说,“链接:警告 LNK4098:defaultlib 'LIBCMTD' 与使用其他库发生冲突;使用/NODEFAULTLIB:library” 使用/NODEFAULTLIB 不起作用,但警告似乎是良性的。到底什么是“DEFAULTLIB”?链接器如何决定?我从来没有见过一种方法来指定链接器使用哪个运行时库,只知道如何告诉编译器创建函数调用的库。
有“dependency walker”程序可以检查目标文件以查看它们所依赖的DLL。我刚刚在我正在尝试构建的项目上运行了一个,这真是一团糟。有些系统 .libs 和 .dll 需要冲突的运行时版本。例如,COMCTL32.DLL 想要 MSVCRT.DLL,但我链接的是 MSVCRTD.DLL。我正在搜索是否有 COMCTL32D.DLL,即使在我键入时也是如此。
所以我想我要的是一个关于如何整理这些东西的教程。你做什么,你是怎么做的?
这就是我想我知道的。如果有任何错误,请纠正我。
最佳答案
您的观点 (1) 和 (2) 在我看来是正确的。 (2) 需要注意的另一件事是,调试 CRT 中的链接还使您可以访问诸如增强的堆检查、检查的迭代器和其他各种健全性检查之类的东西。但是,您不能将调试 CRT 与您的应用程序一起重新分发——您必须仅使用发布版本发布。它不仅是 VC 许可证所要求的,而且您可能也不想发送调试二进制文件。
没有 COMCTL32D.DLL
这样的东西.作为 Windows 一部分的 DLL 必须加载它们在构建 Windows 时链接到的 CRT——这作为 MSVCRT.DLL
包含在操作系统中.此 Windows CRT 完全独立于由组成程序的模块加载的 Visual C++ CRT(MSVCRT.DLL
是 Windows 附带的。VC CRT 将包含一个版本号,例如 MSVCRT80.DLL
)。仅构成 的 EXE 和 DLL 文件您的 程序受调试/发布多线程/单线程设置的影响。
IMO 的最佳实践是为您的 CRT 选择一个设置,并为您发布的每个二进制文件对其进行标准化。我个人会使用多线程 DLL 运行时。这是因为 Microsoft 可以(并且确实)向 CRT 发布可通过 Windows Update 推出的安全更新和错误修复。
关于visual-c++ - 运行时库不匹配和 VC++ - 哦,痛苦!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360084/
我以前从未使用过 wxWidgets,我很想尝试一下,但我在开始时遇到了一百万个问题。 我在 Visual Studio 2010 上使用 wxWidgets 2.9.1。我已经完成了批构建以在每个配
这个问题在这里已经有了答案: Xcode: code loses syntax coloring (15 个答案) 关闭 4 年前。 我在使用 Xcode 4 (4.3.1 - 4E1019) 时遇
以下代码加载演出,清除演出事件集合,然后添加新事件。 Data.LinqToSQL.Gig dbGig = DBContext.Gigs.Where(x => x.ID ==
我正在尝试将 FontAwesome 用于我开发的 jQuery 灯箱插件上的一些控制图标。对于我的一生,我无法让图标在 IE7 中显示。我按照这里的建议reload the IE7 styleshe
使用sqlite3、python 我有一个蹩脚的旧文件legacy_sales: item | year | week | mon | tue | wed | thu | fri | sat |sun
似乎我整个成年生活都被 VC++ 链接器提示或犹豫所折磨,因为各种库不同意使用哪个版本的运行时库。我从来没有心情去掌握那个令人沮丧的主题。所以我只是试着弄乱它,直到它起作用。错误消息永远不会有用。微软
我有 Auto Complete Mode为 Emacs 安装。 首先:当我输入声明时,我会得到正常的自动完成行为: 所以我点击了 Tab 来完成——没问题。但后来我点击了 ;: 它会立即尝试完成某些
伙计们,我对添加对 Microsoft.Web.Infrastructure.dll 的引用感到非常痛苦,也许有人可以帮我解决这个问题。 我正在尝试添加对 Microsoft.Web.Infrastr
我正在尝试使用 docker-compose 构建一个简单的待办事项应用程序,该应用程序具有 3 个容器:一个带有 sqlalchemy 和 marshmallow 的 Flask Rest API、
我一直在努力部署一个相对较大的 Rails 应用程序(Rails 2.3.5),最近做了一些负载测试,我们发现该站点的吞吐量远低于预期的流量水平。 我们在标准的 32 位服务器上运行,使用 Cento
我已经完美地完成了这个练习: import acm.program.*; import acm.graphics.*; import java.awt.event.*; public class Pr
我是一名优秀的程序员,十分优秀!