在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 的代碼。