由于某些奇怪的原因,我无法在 QMake 中使用范围。这是我的项目文件中的一些代码:
debug {
QMAKE_CXXFLAGS_DEBUG += -g3 -O0
message ("Some debug output")
}
release {
DEFINES += QT_NO_DEBUG
DEFINES += QT_NO_DEBUG_OUTPUT
message ("No debug output")
}
但是当我在 Debug模式下编译它时,这是我得到的 gcc 命令行:
g++ -c -g -g3 -O0 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DLIBPROVERIM_LIBRARY -DQT_NO_DEBUG -DQT_NO_DEBUG_OUTPUT -DWINDOWS -DQT_DLL -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include\QtNetwork" -I"c:\Qt\2010.05\qt\include\QtGui" -I"c:\Qt\2010.05\qt\include\QtXml" -I"c:\Qt\2010.05\qt\include\QtSql" -I"c:\Qt\2010.05\qt\include" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"debug" -I"..\proverim" -I"." -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o debug\PForm.o ..\proverim\PForm.cc
请注意,我尝试清理我的项目,以及手动删除生成文件。现在为什么它需要来自两个范围的定义?另外,我没有看到任何消息,它们应该在哪里?
最佳答案
我有同样的问题。为了解决它,我使用了 CONFIG“函数”而不是范围。
.pro 文件的那部分将是:
CONFIG(debug, debug|release) {
QMAKE_CXXFLAGS_DEBUG += -g3 -O0
message("DEBUG!")
} else {
DEFINES += QT_NO_DEBUG
DEFINES += QT_NO_DEBUG_OUTPUT
message("RELEASE!")
}
在一个简单的“HelloWorld”项目中尝试过,一切似乎都正常。
关于qt - QMake:范围如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428169/