- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于构建在 Linux 和 Windows 上的跨平台软件项目,我们有不同的方法来处理第三方库。在 Linux 上,我们构建并链接到与 CentOS/RHEL 发行版一起分发的版本,这意味着我们链接到发布版本,而在 Windows 上,我们维护我们自己的第三方库“包”,在 Windows 上,我们为每个库构建两个版本 -链接 msvcr100 和 msvcp100 的发布版本和链接 msvcr100d 和 msvcp100d 的调试版本。
我的问题很简单,是否有必要在 Windows 上构建第三方依赖项的调试版本,或者我们可以在构建我们自己的软件的调试版本时简单地使用/nodefaultlib:msvcr100。
后续问题:我在哪里可以了解这方面的良好做法。我已经阅读了有关 msvc 运行时的 MSDN 页面,但那里的建议很少。
编辑:
让我更简洁地重新表述这个问题。对于 VS2010,在链接使用/MD 编译的库时,使用/nodefaultlib:msvcr100 将可执行版本与/MDd 链接会出现什么问题。
我这样做的动机是避免必须构建我使用的第三方库的发布和调试版本。此外,我希望我的调试版本运行得更快。
来自/MD、/MT、/LD(使用运行时库)的文档:
MD: Causes your application to use the multithread- and DLL-specific version of the run-time library. Defines _MT and _DLL and causes the compiler to place the library name MSVCRT.lib into the .obj file.
Applications compiled with this option are statically linked to MSVCRT.lib. This library provides a layer of code that allows the linker to resolve external references. The actual working code is contained in MSVCR100.DLL, which must be available at run time to applications linked with MSVCRT.lib
/MDd: Defines _DEBUG, _MT, and _DLL and causes your application to use the debug multithread- and DLL-specific version of the run-time library. It also causes the compiler to place the library name MSVCRTD.lib into the .obj file.
因此,除了定义了 _DEBUG 之外,没有任何文档说明对生成的代码所做的任何差异。
最佳答案
您只能使用 CRT 的调试版本来调试您的应用。它包含大量断言,可帮助您发现代码中的错误。您从不交付项目的调试版本,始终是发布版本。你也不能,许可证禁止运送 msvcr100d.dll。因此,自动正确构建您的项目可以避免对 CRT 调试版本的依赖。
/nodefaultlib 链接器选项旨在允许将您的程序与自定义 CRT 实现链接。很少见,但一些程序员非常关心构建小程序,而标准 CRT 并不小。
有些程序员使用/nodefaultlib 解决链接问题。当他们将使用调试配置设置构建的代码与使用发布配置设置构建的代码链接时引发。或具有不兼容的 CRT 选择的链接代码,/MD 与/MT。这可以工作,但不能保证,但当然只能解决地板垫下的真正问题。
所以不,这不是正确的选择,解决核心问题应该是你的目标。确保您所有的 .obj 和 .lib 文件都是使用相同的编译器选项构建的,这样您就不会遇到这个问题。如果这意味着你必须纠缠库所有者以获得正确的构建,那么首先纠缠,只有当你发现你不想再依赖那个 .lib 但还没有是时候寻找替代方案了。
关于visual-c++ - Is/nodefaultlib :msvcr100 the proper approach to handling msvcr100. dll vs msvcr100d.dll defaultlib 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212326/
Under the push parsing approach, a push parser generates synchronous events as a document is parsed,
我刚刚开发了一个 Android 应用程序(minSdkVersion 23/targetSdkVersion 29),可以连接到 BluetoothLE 设备以定期获取数据。 现在,在 MainAc
我现在编程了一段时间(初学者),递归函数对我来说是一个有点抽象的概念。我不会说我卡住了,程序运行良好,我只是想知道是否可以在代码中没有 pow 函数的情况下编写函数本身(但仍然完全按照问题的建议进行操
http://www.codechef.com/OCT14/problems/PRLADDU 这是当前的运行比赛。 我不想要它的答案,只是让我知道我的方法是否正确。 我遵循的方法是按交换方式添加人和恐
我是Python线程的新手,作为我写的第一个任务: from twitterHandler import Twitter_User from text_analyzer import text_ana
我不是 DBA,我不知道什么是最好的解决方案。我有两个表, Custumers Table CustomerId (primary key, identity) ... 和 Suppliers Tab
我对Spring和Apache Tika集成感兴趣。 这种方法是线程安全的吗? 我可以从不同的线程安全地调用detect()方法吗? 是否有任何Spring-Tika集成模式? 提前致谢。 最佳答案
这听起来可能是一个新手问题,但我是 iOS 开发新手。 我在我的项目中跟踪了代码,该项目启用了 ARC,但我在执行时遇到错误(访问错误),并且想了解问题的原因并解决它。 按下某些按钮后,将在 MTCl
自从 AsyncTask 自2009年在Cupcake(API 3,Android 1.5)中引入以来,它一直被Android团队一如既往地推广: “Painless threading” “an e
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我一直在为这个 leetcode 问题绞尽脑汁。想知道是否有一种实用的方法可以解决这个问题。我能想到的就是使用可变对象(在 Scala 中)。 给定一个表示为数字链接列表的非负整数,该整数加一。 存储
我一直在为这个 leetcode 问题绞尽脑汁。想知道是否有一种实用的方法可以解决这个问题。我能想到的就是使用可变对象(在 Scala 中)。 给定一个表示为数字链接列表的非负整数,该整数加一。 存储
我正在考虑编写一个函数,该函数使用 calloc 创建一个数组来容纳文件中的数据(目前以字符形式)。据我了解,我的两个最明显的选择是读取所有字符以获得所需的总大小,使用 calloc 分配所需的空间,
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我必须准备一个包含很多字段(大约 100 个)的表单。我可以使用一个大的 HTML\PHP 文件,但为了提高可访问性和轻松访问字段,我宁愿使用选项卡菜单。原始表格(称为临床评估)在逻辑上可以分为 3
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
我想获取所有带有 编辑:如果您不想显式定义 for 循环和 if 语句,请尝试使用 .filter() 和 .match( ): var arr = ["cat", "apple", "window
我正在寻找一种 dojo 工具包方法来跨 iFrame 进行通信。与此处显示的 Julien Lecomte 的 CrossFrame 技术类似的东西 http://www.julienlecomte
问题 我想实现TransparencyChecker Interface,它将验证网络中的任何交易所是否都可以使用来自其他交易所的所有交易信息。 问:TransparencyChecker Infer
我有一个类 ClassA,它调用另一个类(DAO)来获取查询结果。在特定的业务场景下, ClassA 使用查询参数调用 DAO 大约 20,000 次。其中,ClassA 向 DAO 发送了大约 10
我是一名优秀的程序员,十分优秀!