簡體   English   中英

qmake 僅在調試模式下運行命令,如何?

[英]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變量是特殊的,因為它可以有多個debugrelease條目,但只有最后一個計數

因此,即使在發布模式下,您的 CONFIG 也可能看起來像something, debug, something, releaserelease “獲勝”,因為它是最后一個,但范圍測試不知道這一點。

這是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM