qt - QMake:范围如何工作?

标签 qt qmake

由于某些奇怪的原因,我无法在 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/

相关文章:

c++ - 带有 GDIplus 的 Qt 无法读取 jpeg 图像的 exif 值(id、类型、长度工作)

makefile - 如何强制 make 仅生成递归作业

c++ - 英特尔 C++ 错误 : "pair" is not a nonstatic data member or base class of class "std::pair<const int, double>"

C++/编译程序 fatal error : QtGui/qwidget. h: No such file or directory

qt - X 错误 : BadDrawable (invalid Pixmap or Window parameter) when launching Spyder on GNOME

Qt QImage 到 QPixmap 的转换丢失了 UI 的颜色信息

c++ - 如何避免由于遍历大量数据而导致应用程序死锁?

c++ - 从另一个线程打破循环

qt - 替换函数 $$find 总是不返回任何内容

c++ - 如何在Linux上将内置的源Boost Boost库添加到Qt Creator