linux - Qt交叉编译Raspi3 - fatal error : unistd. h: No such file or directory

标签 linux qt raspberry-pi cross-compiling

我正在按照指南 wiki.qt.io/RaspberryPi_Beginners_Guide 构建 Qtbase,我运行命令 make 并收到以下错误:

http://pastebin.com/a2cXFGbC

locate unistd.h 的输出:

http://pastebin.com/F656G0eG

一些细节:PC Debian Jessie、Raspberry Pi 3、安装了 Raspbian 的 SD 卡(如指南中所示)。

最佳答案

我的配置命令行(忽略所有 sysroot/prefix/hostprefix/extprefix 选项):

./configure -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -sysroot "$R"-opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -make tools -prefix/usr/lib/arm-linux-gnueabihf/qt5 -extprefix/usr/lib/arm-linux-gnueabihf/qt5 -hostprefix/usr/lib/arm-linux-gnueabihf/qt5

(注意 pi2,可能还有 pi3 的配置)

以及 qtbase 中文件的补丁(更改以匹配您的 gcc 版本和路径):

---------------- mkspecs/devices/linux-rasp-pi2-g++/qmake.conf ----------------
index 9be3f40..fcef488 100644
@@ -11,11 +11,11 @@ QMAKE_INCDIR_EGL        = $$[QT_SYSROOT]/opt/vc/include \
                           $$[QT_SYSROOT]/opt/vc/include/interface/vcos/pthreads \
                           $$[QT_SYSROOT]/opt/vc/include/interface/vmcs_host/linux
 QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}

 QMAKE_LIBS_EGL          = -lEGL -lGLESv2
-QMAKE_CFLAGS += -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux
+QMAKE_CFLAGS += -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux -I$$[QT_SYSROOT]/usr/include/c++/4.9/ -I$$[QT_SYSROOT]/usr/include/arm-linux-gnueabihf/c++/4.9
 QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS

 DISTRO_OPTS += hard-float

 # Preferred eglfs backend

关于linux - Qt交叉编译Raspi3 - fatal error : unistd. h: No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139429/

相关文章:

linux - 如何使用 makefile 创建测试结果

c++ - 如何找出Qt中托盘系统栏的位置?

javascript - 在 Raspberry Pi Zero 上,puppeteer 在超时后挂起

linux - 多线程数据丢失

android - 从另一个共享库中检查丢失的共享库 (.so)

Qt 从源代码构建 Qt 时如何清理旧的配置?

python - 如何在 PyQt5 中向 QLabel 添加信号?

bash - Raspberry Pi : No X11 DISPLAY variable was set, 但该程序执行了需要它的操作

java - 仅在树莓派中没有此类方法错误

linux - 为什么 Ubuntu 或 APT 不使用 rsync 进行更新?