当您添加 qmake 文件(.pro) 时,这些命令的含义是什么?



简而言之,我想将应用程序的类型更改为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_CONSOLEQMAKE_LFLAGS_WINDOWS。但是,您通过添加 QMAKE_LFLAGS_WINDOWS 的值直接更改了QMAKE_LFLAGS,这很奇怪,因为它包含用于构建 Win32 窗口应用程序的链接标志,并且您CONFIG -= windows声明您不希望拥有 Win32 窗口应用程序。

CONFIG告诉qmake你正在为一个特定的平台构建,QMAKE_LFLAGS指定你需要哪个平台特定的库。

相关内容

  • 没有找到相关文章