Qt編譯debug和release版本--CONFIG(debug,debug|release)

 

在pro文件裏添加:


INCLUDEPATH += depend/opencv
INCLUDEPATH += depend/opencv2

debug {
LIBS += -lopencv_core2413d
}
release {
LIBS += -lopencv_highgui241
}

如果打開看項目生成的makefile文件,會發現Makefile.Debug和Makefile.Release都把opencv_core2413d和opencv_highgui241包含進來了。

因爲CONFIG可以同時定義 debug 和 release,但只有一個處於active(當兩個互斥的值出現時,最後設置的處於active狀態),也就是雖然代碼裏最後是隻有一個處於active,但release和debug都對上面的代碼進行了處理。

比如:

CONFIG = debug

CONFIG += release

...

這種情況下,release處於active狀態,但,debug 和 release 都能通過上面的測試。

 

解決方法:

CONFIG(debug,debug|release){
LIBS += -lopencv_core2413d
}
else{
LIBS += -lopencv_highgui241
}

或者

CONFIG(debug,debug|release){
LIBS += -lopencv_core2413d
}
CONFIG(release,debug|release){
LIBS += -lopencv_highgui241
}

對於 CONFIG(debug,debug|release) : 兩個參數,前者是要判斷的active的選項,後者是互斥的選項的一個集合,在 debug和release中選擇,再判斷debug爲active則生效,處理了 LIBS += -lopencv_core2413d 的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章