QT 编译 ERROR: Feature 'iconv' was enabled, but the pre-condition '!features.icu && features.textcodec && (features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv)' failed.
时间: 2023-07-28 15:07:30 浏览: 369
这个错误提示是关于 QT 编译时使用 iconv 功能的。它意味着你的编译配置中启用了 iconv 功能,但是缺少了相应的依赖库。
解决这个问题的方法是,安装相应的依赖库,比如:
- POSIX 平台:安装 libiconv 库,可以通过包管理器或者源码编译安装。
- Solaris 平台:安装 SUNWiconv 或者 libiconv 库。
- GNU/Linux 平台:安装 GNU libiconv 库。
如果你已经安装了相应的依赖库,仍然出现这个错误,那么你需要在编译配置中指定正确的依赖库路径和名称,比如:
```
./configure -iconv -L/usr/local/lib -liconv
```
这个命令会在编译配置中启用 iconv 功能,并指定 libiconv 库的路径和名称。你需要根据你的实际情况修改路径和名称。
相关问题
checking iconv.h usability... no checking iconv.h presence... yes configure: WARNING: iconv.h: present but cannot be compiled configure: WARNING: iconv.h: check for missing prerequisite headers? configure: WARNING: iconv.h: see the Autoconf documentation configure: WARNING: iconv.h: section "Present But Cannot Be Compiled" configure: WARNING: iconv.h: proceeding with the compiler's result checking for iconv.h... no configure: error: iconv.h not found ...
这个错误提示是说在编译时找不到 `iconv.h` 文件。`iconv` 是一个用于字符编码转换的库,在编译某些软件时可能会用到。为了解决这个问题,你需要安装 `iconv` 开发库。
如果你使用的是 Ubuntu 或者 Debian 等基于 Debian 的 Linux 发行版,可以执行以下命令来安装:
```
sudo apt-get install libiconv-hook-dev
```
如果你使用的是 CentOS 或者类似的发行版,可以执行以下命令来安装:
```
sudo yum install glibc-common glibc-devel
```
安装好后再次编译应该就可以找到 `iconv.h` 文件了。
使用gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz交叉编译qt4.8.7流程
以下是使用gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz交叉编译qt4.8.7的流程:
1. 下载并解压gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz和qt-everywhere-opensource-src-4.8.7.tar.gz
2. 配置环境变量,将交叉编译工具链的路径添加到PATH中:
```
export PATH=/path/to/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin:$PATH
```
3. 进入qt-everywhere-opensource-src-4.8.7目录,运行./configure命令,配置Qt的编译选项:
```
./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -prefix /usr/local/qt4.8.7-arm -no-gfx-linuxfb -no-gfx-multiscreen -no-gfx-transformed -depths all -no-qt3support -no-scripttools -no-openssl -no-nis -no-cups -no-iconv -no-pch -no-dbus -no-phonon -no-opengl -no-javascript-jit -no-webkit -no-qml-debug -no-separate-debug-info -no-exceptions -no-accessibility -no-script -no-stl -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon-backend -no-webkit-qml-plugin -no-declarative -no-declarative-debug -no-gif -no-libtiff -no-mng -no-openssl -no-glib -no-pulseaudio -no-gstreamer -no-alsa -no-sm -no-xinerama -no-xkb -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xshape -no-xinput -no-xkbcommon -no-xcb -no-xlib -no-kms -no-linuxfb -no-directfb -no-gfx-qvfb -no-largefile -no-nas-sound -no-webkitwidgets -no-javascriptcore -no-script -no-scripttools -no-xmlpatterns -no-svg -no-webkit -no-qml-debug -no-separate-debug-info -no-icu -no-openssl -no-sql-sqlite -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-tds -no-tls
```
参数说明:
-embedded arm:选择Qt的嵌入式编译模式。
-xplatform qws/linux-arm-gnueabi-g++:指定交叉编译器和Qt平台的路径。
-prefix /usr/local/qt4.8.7-arm:指定Qt的安装路径。
其他参数是为了禁用不需要的模块和功能。
4. 运行make命令进行编译:
```
make
```
5. 编译完成后,运行make install命令进行安装:
```
make install
```
6. 将交叉编译后的Qt库拷贝到目标设备上,将头文件和库文件添加到交叉编译环境的搜索路径中。
7. 在交叉编译环境中使用qmake编译Qt应用程序:
```
/path/to/qt4.8.7-arm/bin/qmake
make
```
以上就是使用gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz交叉编译qt4.8.7的流程。
阅读全文