简而言之,我想将应用程序的类型更改为win32 app
,然后,我在.pro file
中使用了以下命令
CONFIG -=windows
QMAKE_LFLAGS += $$QMAKE_LFLAGS_WINDOWS
使用前面的命令后,应用程序可以正常工作。
但问题是我不知道这些命令的每个命令的含义。
任何人都可以解释这些命令的每个命令吗?
让我们看看CONFIG -= windows
。
摘自 qmake 手册:配置变量
配置
CONFIG 变量指定项目配置和编译器 选项。这些值将由 qmake 在内部识别,并具有 特殊意义。它们如下。
[...]
以下选项定义应用程序/库类型:
窗口 - 目标是 Win32 窗口应用程序(仅限应用)。这 正确的包含路径,编译器标志和库将自动 添加到项目中。
控制台 - 目标是 Win32 控制台应用程序(仅限应用)。这 正确的包含路径,编译器标志和库将自动 添加到项目中。
手册中的另一个摘录:操作员
运营商
在许多项目文件中,赋值 (=) 和追加 (+=) 运算符 可用于包含有关项目的所有信息。这 典型的使用模式是为变量分配值列表, 并根据各种测试的结果附加更多值。因为 qmake使用默认值定义某些变量,有时 需要使用删除 (-=) 运算符筛选出以下值 不是必需的。
-= 运算符从变量中的值列表中删除值:
定义 -= USE_MY_STUFF
上行从预处理器列表中删除USE_MY_STUFF 定义要放入生成的生成文件中。
因此,使用 CONFIG -= windows
您将从变量 CONFIG
中的值列表中删除值windows
。看起来windows
是平台上CONFIG
的默认值之一,您需要删除该值。值windows
定义的目标是 Win32 窗口应用程序。通过删除它,你声明你不希望拥有 Win32 窗口应用。如果您的目标是 Win32 控制台应用程序,则建议显式声明它:CONFIG += console
。
现在让我们看看QMAKE_LFLAGS += $$QMAKE_LFLAGS_WINDOWS
.
手册摘录:QMAKE_LFLAGS
QMAKE_LFLAGS
此变量包含一组常规标志,这些标志传递给 连接。如果需要更改用于特定平台的标志 或项目类型,为此使用专用变量之一 目的而不是此变量。
[...]
QMAKE_LFLAGS_WINDOWS
这仅在 Windows 上使用。
此变量在生成 Windows GUI 项目时包含链接标志 (即非控制台应用程序)。此变量的值为 通常由 qmake 或 qmake.conf 处理,很少需要 改 性。
这意味着,如果您想更改标志,则应更改QMAKE_LFLAGS_CONSOLE
或QMAKE_LFLAGS_WINDOWS
。但是,您通过添加 QMAKE_LFLAGS_WINDOWS
的值直接更改了QMAKE_LFLAGS
,这很奇怪,因为它包含用于构建 Win32 窗口应用程序的链接标志,并且您CONFIG -= windows
声明您不希望拥有 Win32 窗口应用程序。
CONFIG
告诉qmake你正在为一个特定的平台构建,QMAKE_LFLAGS
指定你需要哪个平台特定的库。