使用 qmake 生成对 MS VS 有额外依赖关系的 makefile

Posted

技术标签:

【中文标题】使用 qmake 生成对 MS VS 有额外依赖关系的 makefile【英文标题】:generate makefile with qmake that have additional dependency for MS VS 【发布时间】:2013-01-11 08:03:21 【问题描述】:

我有一个使用 qmake (qmake -tp vc) 制作的 Visual Studio 项目,它是一个 lib,它使用 win32 套接字函数 (setsockopt),所以我需要包含“Ws2_32.lib”。

但是如果我做类似的事情

POST_TARGETDEPS  += Ws2_32.lib

它没有写入 Visual Studio 项目文件。对我来说问题是,我几乎没有包含此库的应用类型项目,如果我不需要在 .pro 文件中为这些项目设置额外的行,我会更好。

所以我的问题是,我需要在 .pro 文件中使用什么指令/变量,所以 lib 依赖关系在 Visual Studio 项目文件中结束?

已解决: 我没有找到如何为具有附加依赖项的 lib 创建 Visual Studio 项目文件,但作为解决方法,我在 .pri 文件中添加了 LIB 定义,该文件包含在所有应用程序类型项目中,因此我不需要将此 lib 添加到每个手动项目。

【问题讨论】:

【参考方案1】:

使用LIBS:

win32:LIBS += -lWs2_32

【讨论】:

这是我的第一次尝试,但没有帮助。没有帮助是指它没有添加到 VS 项目的“附加依赖项”列表中(当然是在重新生成项目文件之后) 为我工作。在使用 LIBS 之前和之后,您是否有解决方案/项目文件的差异? 不,我没有那个项目。它适用于 exe ("TEMPLATE = app") 但不适用于 lib ("TEMPLATE = lib") 包含这个库时,当然还有其他项目,但我想生成包含“ws2_32”库的VS项目文件,并且作为独立库它没有任何其他.pro(或其他类型)的项目包括。 如果我理解正确,您想继续传播 Ws2_32 到其他应用程序吗?由于链接器需要此 Ws2_32,因此不能只为库指定它。一种解决方法是将它放在一个简单的 mylib_deps.pri 中,然后从其他 .pro 文件中包含该 .pri。

以上是关于使用 qmake 生成对 MS VS 有额外依赖关系的 makefile的主要内容,如果未能解决你的问题,请参考以下文章

QtCreator / qmake额外目标没有运行

项目消息:您正在对生成的 .pro 文件运行 qmake。这可能行不通

在 VS Community 2015 中使用 qmake

vs2010打开qt的.pro文件时错误解决办法

使用 qmake 生成具有 FLTK 流体文件的 makefile?

经验分享win10 qmake 构建 ncnn vs 工程