- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 qmake 项目文件(test.pro):
CONFIG += debug
TEMPLATE = vcapp
SOURCES = temp.cc
我在 cygwin shell 中使用以下命令运行 qmake:
env QMAKESPEC=${QT_ROOT}/mkspecs/win32-msvc2010 ${QT_ROOT}/bin/qmake.exe -o test.vcxproj test.pro
我在 Visual Studio 2010 中打开 .vcxproj 文件并查看“运行时库”的值。它被设置为多线程调试 DLL (/MDd)。那是一个惊喜。不是应该设置成多线程调试(/MTd)吗?毕竟,我的模板是vcapp
,而不是vclib
。
我是否需要更改一些其他设置来指示 qmake 生成使用多线程调试 (/MTd) 的 .vcxproj 文件?
感谢您的见解。
最佳答案
感谢 Hans Passant 提供链接。
Qt is built using the -MD(d) switch, which links against the dynamic C/C++ runtime libraries. This is necessary as we have experienced memory problems when using anything but the -MD(d) flag, and in general, it is recommended to use. You should not alter this flag yourself for your application, because it conflicts with how the Qt library is built if you change the flag to -MT. You should not change it for Qt either, since it is likely to cause problems.
Qt is still built statically when using the -static option though, meaning you do not need to distribute the Qt dlls when deploying your application. You will have to distribute the C runtimes though (if they don’t already exist on the target machine), see our deployment documentation [qt.nokia.com].
If you choose to change this setting anyway, then it can be done in the qmake.conf file for your qmakespec. Where it says -MD you need to change it to be -MT. For Visual Studio 2005 it is also necessary to change the relevant files in mkspecs/features to remove the call to mt.exe. As stated above, we can’t support you with any problems you run into as a consequence of making these changes.
关于visual-studio-2010 - 为什么qmake为vcapp模板选择 "Multi-threaded Debug DLL (/MDd)"运行时库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25491916/
多年来,我研究了很多使用代码生成器和 MDD 的方法。我一直觉得缺少一些东西:在运行时对模型进行修补和更改。 修补:如果你有一个代码生成器,你所有的类应该看起来一样。现在你有一个异常(exceptio
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我们有一个要分发的 C 库以及 C 示例代码。 库当然是在 Release模式下构建的。示例代码项目在 cmake 中,因此它可以轻松地在 Linux 和 Windows 上运行。在 Linux(调试
我有一个关于多线程调试 DLL (/MDd) 和多线程调试 (/MTd) 设置的问题。它们之间的区别很明显:一个是使用动态库,一个是使用静态库。当我使用/MDd 编译我的程序时,一切都进行得很好。但是
我目前正在尝试实现基于 Chromium 嵌入式框架 (CEF) 的软件。 我的目标平台是 Windows,我使用的是 CEF 自动化构建的最新版本(截至本文发布之日)。 由于与其他项目的兼容性原因,
我有一个库需要在 Release模式下使用,因为它的性能在没有优化的情况下会显着降低。当我在我的/MDd 中将它与/MD 一起使用时,它会发出 crt 警告,我认为这是不好的。 (可能导致堆损坏?)
我需要防止 Visual Studio 调试器的默认消息框在堆损坏期间显示。根据documentation它应该很简单: SetErrorMode(SEM_FAILCRITICALERRORS | S
当我在我的代码中添加以下行时: std::string sFrameTag 我收到以下链接器错误: Error 34 error LNK2005: "public: __thiscall std::b
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我想知道两者之间是否有任何区别: 领域驱动设计 (DDD) 模型驱动设计 (MDD) 我总是在许多文章和公共(public)文献中找到这两个术语,但没有人强调它们的区别。 最佳答案 我个人觉得 MDA
这个问题在这里已经有了答案: Compile with /MT instead of /MD using CMake (5 个回答) 去年关闭。 我在 stackoverflow 上读过类似的问题,但
在Visual Studio中指定/mdd(多线程调试dll)和/mtd(多线程调试)有什么区别? 最佳答案 /mtd需要一个静态链接,以生成更大的.exe,但而不是取决于包含运行时库的DLL(VS2
我在 x86 PC 上使用 Windows CE 6.0 R3。我已经为平台构建了 NK.bin 和 SDK。但是我在理解如何使用/MTd(调试 DLL)构建控制台应用程序时遇到了一些问题。 如果我尝
所以我有以下设置(简化版): application/app1.hpp application/app1.cpp application/utils/utils1.hpp application/ut
我现在正在尝试使用 cmake 构建 opencv,如果我使用以下命令: cmake -DBUILD_SHARED_LIBS=OFF .. 我可以构建静态 OPENCV 库。但是,构建的库静态链接 C
我从下载luajit源码 http://luajit.org/git/luajit-2.0.git 并用它的 msvcbuild.bat 构建它 https://github.com/luvit/lu
编程语言在其历史上有几个(r)进化步骤。有些人认为模型驱动的方法将是下一件大事。有像 openArchitectureWare、AndroMDA、Sculptor/Fornax Platform 等工
我有以下 qmake 项目文件(test.pro): CONFIG += debug TEMPLATE = vcapp SOURCES = temp.cc 我在 cygwin shell 中使用以下命
我正在尝试整合 GTest 与 CMake 尽可能无缝。但是我的测试项目的默认构建类型是 /MDd并且 GTest 默认为 /MTd .我正在手动更改 GTest 项目属性以发出调试 DLL。 但是每
我正在链接到 VS2008 中的几个库。如果我对链接器的了解是正确的,MTd 用于静态链接而 MDd 用于动态链接(到 DLL)。我的目标是静态链接一些库和动态链接其他库。项目选项似乎只有一个设置适用
我是一名优秀的程序员,十分优秀!