gpt4 book ai didi

compiler-errors - 在64位计算机上编译静态32位Qt

转载 作者:行者123 更新时间:2023-12-02 10:59:54 25 4
gpt4 key购买 nike

我有一台64位的Ubuntu计算机。而且我已经成功使用以下配置选项来配置和编译Qt5 静态

-static
-release
-prefix /opt/Qt-5.8.1
-confirm-license
-nomake examples
-nomake tests
-opensource
-qt-xcb
-no-sql-psql
-skip qt3d
-fontconfig

现在,我想创建一个 32位静态Qt 构建。因此,我在配置时添加了一个附加的 -xplatform linux-g++-32选项。

但是,我收到以下两个(不相关?)错误
ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed. ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.

我想我这里缺少一些小东西-例如缺少32位开发库。但是我不知道我应该在64位计算机上安装什么以启用32位交叉编译。

如果可以快速轻松地解决上述错误,请告诉我。

谢谢
Abhinav。

最佳答案

好吧,让我回答我自己的问题。或者至少分享最终对我有用的东西。

背景

使用上述选项在Ubuntu 16.04 64位计算机上成功构建了Qt-5,然后为我的项目成功创建了 64位静态链接的可执行文件,现在我希望以32位来完成。

问题

无法关闭正确的配置选项集并为32位构建环境设置

解决方案

  • sudo apt-get install libfreetype6:i386
  • sudo apt-get install libfreetype6-dev:i386

  • 然后在为Qt调用 ./configure时更改以下选项。
    -prefix (path-to-Qt32bit) -platform linux-g++-32 -I/usr/include/freetype2 -L/usr/lib/i386-linux-gnu
    依次调用 makemake install
    现在,您将拥有32位的Qt版本(在64位计算机上)

    陷阱

    尽管进行了上述操作,我项目的生成的32位可执行文件仍无法在32位计算机上运行。

    我认为这与我的Qt版本有关。

    但是事实证明我在Ubuntu-12.04机器上运行可执行文件。并且12.04中提供的 libfreetype没有像 FT_Property_Set这样的方法。因此,我看到了运行时 undefined symbol错误。

    结果,即使可执行文件已编译,也无法运行。
    对我来说,解决方案是仅安装Ubuntu 16.04(32位)。可执行文件随后顺利运行。

    关于compiler-errors - 在64位计算机上编译静态32位Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45325885/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com