【问题标题】:In Windows, What Makes qmake Append a "d" to a Debug Target?在 Windows 中,是什么让 qmake 将“d”附加到调试目标?
【发布时间】:2009-06-16 21:32:48
【问题描述】:

我正在使用提供的.pro 文件,由于某种原因,它被配置为调试库没有在其库名称后附加“d”。是什么原因造成的,如何恢复?

例如QtGui4.dll(发布)和QtGuid4.dll(调试)

谢谢。

【问题讨论】:

    标签: windows qt qmake


    【解决方案1】:

    将此添加到 .pro 文件中,它将为 mac 附加 _debug,为 windows 调试版本附加 d

     CONFIG += debug_and_release
    
     CONFIG(debug, debug|release) {
         mac: TARGET = $$join(TARGET,,,_debug) 
         win32: TARGET = $$join(TARGET,,,d)
     }
    


    CONFIG(xx, yy)这个函数可以用来测试放入CONFIG变量的变量 join(variablename, glue, before, after) 在前后用胶水连接变量名的值。

    Installing in Both Modes

    【讨论】:

    • 感谢您,但我认为 Qt 会通过一些配置自动执行此操作。我不想自己明确添加。
    • 据我所知,Qt 不会自动执行此操作,您必须自己添加。请参阅链接“在两种模式下安装”
    • Linux -_d 没必要怎么办?我可以构建吗?
    • d 从来都不是必需品。这只是一种让链接到它的用户知道给定库的构建类型的方法。如果您在发布模式下构建应用程序但链接到在调试模式下构建的库(反之亦然),您可能会在此过程中遇到一些非常令人讨厌的惊喜。
    【解决方案2】:

    在您的 .pro 文件中,将 debug 添加到 CONFIG 变量中:

    CONFIG += qt debug
    

    见:http://doc.qtsoftware.com/4.5/qmake-tutorial.html#making-an-application-debuggable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2023-03-19
      • 2013-09-29
      相关资源
      最近更新 更多