问题标签 [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.
distribution - 如何覆盖 Qmake 的“make dist”默认目标?
在 Qt 项目中,我需要提供一个自定义的make dist
. 所以我在文件中添加了以下几行*.pro
:
这有效,但每次运行时都会显示以下警告make
:
除此之外,它工作得很好,完全覆盖了 Qmake 的默认make dist
目标。但是这些警告真的很烦人。
我可以使用不同的目标名称,例如make dist-all
,但make dist
它是一个已建立的标准命令。是否可以覆盖 Qmakemake dist
而不会收到警告?
也许我走错了路?我应该以不同的方式处理这个问题吗?
macos - 如何强制 qtcreator 创建非通用二进制文件
当我在 mac 上使用 qtcreator 时,它会创建通用二进制文件。
有谁知道如何设置它,所以它只是创建一个“本机”二进制文件?(所以在我的情况下是 i386'?)
Qtcreator 使用 qmake 作为构建系统。
到目前为止,谷歌还不是我的朋友,我希望 stackoverflow 会。
编辑:到目前为止我的配置文件:
它仍然在 libmongoclient.a 上给出错误
libboost 库一切正常,但这是因为我使用 +universal 选项从 macports 获取它们。
由于 mongoclient 不支持通用我目前正在删除所有通用的东西。我希望为 boost libs 得到 3 个错误,并且至少;east mongoclient 会链接。那时我可以再次重做整个 macport 的故事,但这次删除了通用。
不幸的是,它似乎仍然构建了一个通用二进制文件,因为我仍然有相同的链接器错误。
谢谢您的帮助
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 执行时运行脚本?
windows - 使用 QT/qmake 编译 libshout
我正在尝试将我的 QT 应用程序链接到 DLL (libshout),同时为 Windows 构建。
我已将适当的行添加到我的 .pro 文件中:
我还成功地构建并安装了 libshout 到 /local/lib(我正在使用 mingw 和 gcc-dw2 编译器)。
但是,qmake 无法成功链接。我在下面粘贴了 gcc/make 输出。我什至不确定它是否正在尝试链接到正确的库(.a/.la 不是静态库吗?)。
我已经为此撕掉了 3 天的头发,所以任何帮助表示赞赏:)
java - 使用 MINGW 构建 JNI DLL
我正在尝试创建一个将调用 Qt 的 DLL(目前我无法将 Jambi 用于我需要的功能)。我有一个简单的 Java 方法:
我在 Visual Studio Express 2010 中创建了 C 项目并能够构建 DLL。
然后我在 Qt creator 中创建了一个项目并将我的源代码移到那里。我试图尽我所知配置构建,但我得到的是:
我的猜测是符号没有从 DLL 中正确导出。我添加了 -D_JNI_IMPLEMENTATION_ 链接器参数:
linux - 如何避免 .so 文件名中包含版本号
我正在尝试使用 qmake 在 Linux 上构建一个动态库。这是我的 .pro 文件:
sqxUiBase.pri 文件包含需要构建的文件列表。
现在,问题是无论我做什么,生成的文件总是命名为sqxUiBase.so.1.0.0
,并带有一堆符号链接(sqxUiBase.so
和sqxUiBase.so.1
)sqxUiBase.so.1.0
指向它。我怎样才能做到只有一个sqxUiBase.so
文件而没有链接?
qt - qt qmake 额外编译器与生成文件之间的依赖关系
qmake 可以处理生成的源文件的依赖关系吗?
我们有一个这样的prf文件:
这一代工作正常,并在制作时创建 .h 文件。问题是输入文件 ( $$IDLS
) 相互依赖,并不总是以正确的顺序构建。我们有类似的东西app.idl
,包含:
看来以下应该工作
但显然depend_command并未实际执行。
另一个想法是从原始 idl 中解析依赖项:
但似乎我的 qmake 语法让我失望了。
makefile - 如何在 qmake 生成的 Makefile 中添加自定义目标?
我使用 qmake 生成 Makefile,效果很好。但是,有时我想在生成的 Makefile 中添加更多内容,而无需编辑生成的 Makefile。
假设我们在源代码旁边有一个 Doxygen 目录,我需要在其中运行一些 doxygen 命令来生成文档。因此,将它作为主 Makefile 中的目标会很好。但是作为默认的 qmake 不理解这种额外的东西。
那么我可以添加一些东西来告诉 qmake 在“doxygen”目录中包含一个辅助 Makefile,或者直接在 qmake 配置中添加“额外目标”吗?
也许是这样的:
qt - QMake:自动编译目录中的所有文件
对于我的 Qt 项目,我使用一个 .pro 文件,该文件包含一个单独的 .pri 文件,用于各种头文件、源文件、表单和资源文件。但是,每次添加新文件时,我都需要手动将其添加到 .pri 文件中。这是乏味且容易出错的。有没有办法“神奇地”添加目录中的所有文件,直接在 .pri 文件中或通过告诉 qmake 事先运行单独的脚本?
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 个问题:
[编辑] 我获得了源代码,并且它构建正确。我将不得不采用最简单的解释,构建机器错误地配置了非标准库,并且生成文件很好。