问题标签 [qmake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1536 浏览

distribution - 如何覆盖 Qmake 的“make dist”默认目标?

在 Qt 项目中,我需要提供一个自定义的make dist. 所以我在文件中添加了以下几行*.pro

这有效,但每次运行时都会显示以下警告make

除此之外,它工作得很好,完全覆盖了 Qmake 的默认make dist目标。但是这些警告真的很烦人。

我可以使用不同的目标名称,例如make dist-all,但make dist它是一个已建立的标准命令。是否可以覆盖 Qmakemake dist而不会收到警告?

也许我走错了路?我应该以不同的方式处理这个问题吗?

0 投票
1 回答
576 浏览

macos - 如何强制 qtcreator 创建非通用二进制文件

当我在 mac 上使用 qtcreator 时,它会创建通用二进制文件。

有谁知道如何设置它,所以它只是创建一个“本机”二进制文件?(所以在我的情况下是 i386'?)

Qtcreator 使用 qmake 作为构建系统。

到目前为止,谷歌还不是我的朋友,我希望 stackoverflow 会。

编辑:到目前为止我的配置文件:

它仍然在 libmongoclient.a 上给出错误
libboost 库一切正常,但这是因为我使用 +universal 选项从 macports 获取它们。

由于 mongoclient 不支持通用我目前正在删除所有通用的东西。我希望为 boost libs 得到 3 个错误,并且至少;east mongoclient 会链接。那时我可以再次重做整个 macport 的故事,但这次删除了通用。

不幸的是,它似乎仍然构建了一个通用二进制文件,因为我仍然有相同的链接器错误。

谢谢您的帮助

0 投票
4 回答
22224 浏览

qt - 从 QMake 运行程序/脚本

我们有一个相当大的代码库。绝大多数代码是使用 qmake 编译以生成 makefile 的。但是,有一些子项目是通过运行批处理文件或运行其他程序产生的。

我希望能够使用 qmake 编译所有内容,但我不知道如何让 qmake 简单地运行脚本。

我尝试过的一件事是在我的专业文件中使用 QMAKE_EXTRA_TARGETS ,如下所示:

然后我必须让批处理文件像这样生成 placeholder.cpp:

这似乎工作正常。问题是它有点做作。如果我不指定batch_runner.target(即我将其留空)或不将placeholder.cpp 放在SOURCES 中,那么批处理文件永远不会运行。这是因为 qmake 没有使 batch_runner.commands 成为 Makefile 中任何其他依赖项的操作。

有没有更好的方法让 QMake 构建 Makefile 以便在 Makefile 执行时运行脚本?

0 投票
1 回答
818 浏览

windows - 使用 QT/qmake 编译 libshout

我正在尝试将我的 QT 应用程序链接到 DLL (libshout),同时为 Windows 构建。

我已将适当的行添加到我的 .pro 文件中:

我还成功地构建并安装了 libshout 到 /local/lib(我正在使用 mingw 和 gcc-dw2 编译器)。

但是,qmake 无法成功链接。我在下面粘贴了 gcc/make 输出。我什至不确定它是否正在尝试链接到正确的库(.a/.la 不是静态库吗?)。

我已经为此撕掉了 3 天的头发,所以任何帮助表示赞赏:)

0 投票
2 回答
2901 浏览

java - 使用 MINGW 构建 JNI DLL

我正在尝试创建一个将调用 Qt 的 DLL(目前我无法将 Jambi 用于我需要的功能)。我有一个简单的 Java 方法:

我在 Visual Studio Express 2010 中创建了 C 项目并能够构建 DLL。

然后我在 Qt creator 中创建了一个项目并将我的源代码移到那里。我试图尽我所知配置构建,但我得到的是:

我的猜测是符号没有从 DLL 中正确导出。我添加了 -D_JNI_IMPLEMENTATION_ 链接器参数:

0 投票
2 回答
7132 浏览

linux - 如何避免 .so 文件名中包含版本号

我正在尝试使用 qmake 在 Linux 上构建一个动态库。这是我的 .pro 文件:

sqxUiBase.pri 文件包含需要构建的文件列表。

现在,问题是无论我做什么,生成的文件总是命名为sqxUiBase.so.1.0.0,并带有一堆符号链接(sqxUiBase.sosqxUiBase.so.1sqxUiBase.so.1.0指向它。我怎样才能做到只有一个sqxUiBase.so文件而没有链接?

0 投票
1 回答
1713 浏览

qt - qt qmake 额外编译器与生成文件之间的依赖关系

qmake 可以处理生成的源文件的依赖关系吗?

我们有一个这样的prf文件:

这一代工作正常,并在制作时创建 .h 文件。问题是输入文件 ( $$IDLS) 相互依赖,并不总是以正确的顺序构建。我们有类似的东西app.idl,包含:


看来以下应该工作

但显然depend_command并未实际执行


另一个想法是从原始 idl 中解析依赖项:

但似乎我的 qmake 语法让我失望了。

0 投票
4 回答
14458 浏览

makefile - 如何在 qmake 生成的 Makefile 中添加自定义目标?

我使用 qmake 生成 Makefile,效果很好。但是,有时我想在生成的 Makefile 中添加更多内容,而无需编辑生成的 Makefile。

假设我们在源代码旁边有一个 Doxygen 目录,我需要在其中运行一些 doxygen 命令来生成文档。因此,将它作为主 Makefile 中的目标会很好。但是作为默认的 qmake 不理解这种额外的东西。

那么我可以添加一些东西来告诉 qmake 在“doxygen”目录中包含一个辅助 Makefile,或者直接在 qmake 配置中添加“额外目标”吗?


也许是这样的:

0 投票
2 回答
6488 浏览

qt - QMake:自动编译目录中的所有文件

对于我的 Qt 项目,我使用一个 .pro 文件,该文件包含一个单独的 .pri 文件,用于各种头文件、源文件、表单和资源文件。但是,每次添加新文件时,我都需要手动将其添加到 .pri 文件中。这是乏味且容易出错的。有没有办法“神奇地”添加目录中的所有文件,直接在 .pri 文件中或通过告诉 qmake 事先运行单独的脚本?

0 投票
2 回答
4184 浏览

c++ - 在 C++ 应用程序中链接到错误的库版本

我正在对 RHEL/CentOS 5 上的 C++ 二进制文件进行故障排除,该二进制文件在 openssl 共享库方面存在问题。我没有做太多 C/C++ 编程,而且我很难找到根本问题。

似乎出了问题的是应用程序正在链接到特定版本的 libcrypto 和 libssl (0.9.8),而不是和的符号链接/lib/libcrypto.so.6路径/lib/libssl.so.6。由于 openssl 库在编译后已更新,因此现在已损坏。

ldd显示二进制文件的以下 2 个问题:

[编辑] 我获得了源代码,并且它构建正确。我将不得不采用最简单的解释,构建机器错误地配置了非标准库,并且生成文件很好。