[QtADS]解析ads.pri

复制代码
CONFIG(debug, debug|release){
    win32-g++ {
    	versionAtLeast(QT_VERSION, 5.15.0) {
    		LIBS += -lqtadvanceddocking
    	}
    	else {
    		LIBS += -lqtadvanceddockingd
    	}
    }
    else:msvc {
        LIBS += -lqtadvanceddockingd
    }
    else:mac {
        LIBS += -lqtadvanceddocking_debug
    }
    else {
        LIBS += -lqtadvanceddocking
    }
}
else{
    LIBS += -lqtadvanceddocking
}


unix:!macx {
    LIBS += -lxcb
}

核心逻辑:Debug/Release模式区分​

1. ​​Debug模式配置​
复制代码
CONFIG(debug, debug|release) {
    ...
}
  • 作用​ ​:仅在Debug构建模式下生效,通过CONFIG变量检测当前配置。

  • ​平台与编译器分支​​:

    • win32-g++​(Windows + MinGW):

      versionAtLeast(QT_VERSION, 5.15.0) {
      LIBS += -lqtadvanceddocking # Qt≥5.15 的Debug库无后缀
      } else {
      LIBS += -lqtadvanceddockingd # Qt<5.15 的Debug库需加"d"后缀
      }

说明​​:Qt 5.15开始统一Debug/Release库命名(无后缀),旧版本需用"d"后缀区分。

else:msvc​(Windows + MSVC编译器):

复制代码
LIBS += -lqtadvanceddockingd        # MSVC传统用"d"后缀标识Debug库
复制代码
说明​​:MSVC编译器生态中广泛采用"d"后缀(libQt5Cored.lib)

else:mac​(macOS平台):

复制代码
LIBS += -lqtadvanceddocking_debug   # macOS自定义Debug库命名

说明​ ​:macOS库命名规则较灵活,此处显式指定_debug后缀

else​(其他平台如Linux):

复制代码
LIBS += -lqtadvanceddocking        # 默认无后缀(多数Linux库命名统一)
​Release模式配置​
复制代码
else {
    LIBS += -lqtadvanceddocking        # 所有平台Release模式均用无后缀库
}

说明​​:Release模式无需后缀,跨平台保持一致。

平台特定依赖:Linux/XCB链接

复制代码
unix:!macx {
    LIBS += -lxcb                      # Linux下显式链接XCB库
}
  • 作用​ ​:针对非macOS的Unix系统(主要是Linux),添加X Window系统依赖库libxcb

  • ​语法解析​​:

    • unix:匹配所有Unix-like系统(包括Linux/macOS)。

    • !macx:排除macOS(macOS使用原生Cocoa API而非XCB)。

  • ​必要性​​:Qt GUI在Linux下依赖XCB实现窗口管理,需显式链接。


我的版本:

Windows msvc2019_64bit

对应进入这个分支


相关推荐
kaixin_learn_qt_ing13 小时前
[QtADS]解析demo.pro
qtads