linux下由于内存不足造成的 virtual memory exhausted: Cannot allocate memory, qt **.o文件 file not found

在Ubuntu下将Windows的Qt程序移植到arm板时遇到编译问题,因qrc文件包含中文路径导致资源无法生成。解决后又出现因资源文件过多致Qt崩溃。解决方法包括移除中文路径、删除并重新添加资源文件,以及增加内存交换文件(swap)以应对内存不足。通过`dd`、`mkswap`和`swapon`命令创建swap文件,成功解决了内存问题。
摘要由CSDN通过智能技术生成

             把windows下的Qt程序移植到arm板上,在ubuntu下编译的时候,res.qrc文件不能生成qrc_res.o文件,搞了半天原来是qrc文件里有的图片路径含有中文,把中文去掉就OK了!

后来发现还是不行,修改qrc文件保存的时候还qt还会崩溃, 总结原因是我在添加资源文件的时候qt creator 崩溃造成的问题,把新添加的资源文件删除,再重新添加一次就好了!或者qrc文件在打开状态,把这个文件关闭了再编译.

而造成Qt崩溃的原因则是单个qrc文件里放了太多的资源文件,因此多添加几个qrc文件,免得qt 频频崩溃.之前资源文件可以说是乱放的,现在也借此机会把资源都放放好.顺便总结一下qrc文件的使用.在pro文件下的Resources文件夹里放入qrc文件,再新建几个要用到的目录,比如qss,image.


终于找到原因了,原来是内存不足.

18:12:18: Starting: "/usr/bin/make" -w
make: Entering directory `/home/ls/nfs/MyApp1.3.2.14-linux-1.16/NVR3000E_linux_1-build-desktop-Qt_4_8_4__qt___2__Debug'
/opt/qt/bin/rcc -name res ../NVR3000E/res.qrc -o qrc_res.cpp
/opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qt/mkspecs/qws/linux-arm-g++ -I../NVR3000E -I/opt/qt/include/QtCore -I/opt/qt/include/QtNetwork -I/opt/qt/include/QtGui -I/opt/qt/include/QtXml -I/opt/qt/include -I../NVR3000E -I/home/ls/nfs/MyApp1.3.2.14-linux-1.16/NVR3000E/../../EXE/Debug -I. -I. -I. -o qrc_res.o qrc_res.cpp
virtual memory exhausted: Cannot allocate memory
make: *** [qrc_res.o] Error 1
make: Leaving directory `/home/ls/nfs/MyApp1.3.2.14-linux-1.16/NVR3000E_linux_1-build-desktop-Qt_4_8_4__qt___2__Debug'
18:12:24: The process "/usr/bin/make" exited with code 2.
Error while building project NVR3000E_linux_1.3.2.14 (tar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值