zoukankan      html  css  js  c++  java
  • QT-osgQOpenGL.lib: error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(osgQOpenGLWidget.obj 中)

    相关资料:
    VS设置方法:https://blog.csdn.net/liukang325/article/details/78584625
    QT设置方法:https://www.zhihu.com/question/52165737

    问题情况:
    自己生成了一个OSG的osgQOpenGL.lib库文件,自己写了一个小程序调用没有问题,用单位产品调用也没有问题(注意:这里说的是在QT中调用)。但是写了一个功能相同的xamke.lua后,发现xmake生成到最后提示“osgQOpenGL.lib: error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(osgQOpenGLWidget.obj 中) ”

    问题原因:
    网上查了一下,说是调用库的时候,用的运行库信息设置不相同。比如DLL用的是MD,调用的EXE用的是MT。

    问题处理:
    因为xmake用的是MT设置,所以我只好把生成lib库的工程改成了MT。
    在osgQOpenGL.pro中增加二行代码如下:
    QMAKE_CXXFLAGS_RELEASE += /MT
    QMAKE_CFLAGS_RELEASE += /MT
    注意:之后在QT中调用的EXE工程也要增加这二行,要不然xmake好了后,QT生成不了EXE了。

    有四个选项及含义分别如下:
    多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
    多线程Dll (/MD) 对应的是MD_DynamicRelease
    多线程(/MT) 对应的是MD_StaticRelease
    多线程(/MTd)对应的是MD_StaticDebug

  • 相关阅读:
    梦和现实, 哪个更真实呢? 程序的现实? 还是上古的梦?
    C#基础知识总结(一)
    C#学习路线
    C# 成员默认访问权限(public、private、protected、internal)
    C#基础知识总结(二)
    正则表达式C#正则表达式的符号及例子
    Dynamics CRM 2016/365 窗体中添加按钮
    01 tsung安装
    07 tsung 参数化
    02 jmeter 简单发送http请求
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/13218439.html
Copyright © 2011-2022 走看看