[英]qmake run command only in debug mode, how?
這是這個問題的延續。 我想跑
win32:LIBS ~= s/-l(.*)/-l\1d/g
僅用於調試版本,因為這個想法是在調試模式下將d
附加到 lib 名稱。
我試過
win32:debug:LIBS ~= s/-l(.*)/-l\1d/g
但它也在發布模式下執行。
您需要使用CONFIG(debug, debug|release)
而不是簡單的測試是否存在debug
。 CONFIG
變量是特殊的,因為它可以有多個debug
和release
條目,但只有最后一個計數。
因此,即使在發布模式下,您的 CONFIG 也可能看起來像something, debug, something, release
: release
“獲勝”,因為它是最后一個,但范圍測試不知道這一點。
這是qmake的一個怪癖。 它甚至被記錄在案,如果你知道先看哪里:/
由於值的順序在 CONFIG 變量中很重要(即,最后一組將被視為互斥值的活動配置)第二個參數可用於指定要考慮的一組值。 例如:
這就是我通常的做法:
CONFIG(debug, debug|release) {
unix: TARGET = $$join(TARGET,,,d)
win32: TARGET = $$join(TARGET,,,d)
}
平台的存在是因為最初我認為對不同的平台使用不同的約定,並在此處僅作為示例
您可以在為 libs/apps 設置目標名稱后立即添加此規則
正常布局在 .pro 文件中有此規則用於生成您的庫,例如:
CONFIG(debug, debug|release) {
unix: LIBS += -L../libs -L../../libs -lyourlibnamed
win32: LIBS += -L../libs -L../../libs -lyourlibnamed
} else {
unix: LIBS += -L../libs -L../../libs -lyourlibname
win32: LIBS += -L../libs -L../../libs -lyourlibname
}
在 .pri 文件中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.