use*_*117 9 linux stack gcc ccl
我正在尝试使用Angstrom Linux在我的BeagleBoard中编译源代码.昨天我能够编译我的代码.但今天我无法编译代码,它说:
ccl: out of memory allocating 268439608 bytes after a total of 405504 bytes
make *** [getimagefromcam1.o] Error 1
Run Code Online (Sandbox Code Playgroud)
我的编译字符串是:
gcc getimagefromcam1.c `pkg-config --cflags --libs opencv` -o getimagefromcam1 -lpthread
Run Code Online (Sandbox Code Playgroud)
代码是:
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
CvCapture* camera = cvCreateCameraCapture(0); // Use the default camera
IplImage* frame = 0;
IplImage img;
cvSetCaptureProperty(camera,CV_CAP_PROP_FRAME_WIDTH,2016) ;
cvSetCaptureProperty(camera,CV_CAP_PROP_FRAME_HEIGHT,1512);
frame = cvQueryFrame(camera); //need to capture at least one extra frame
frame = cvQueryFrame(camera);
if (frame != NULL) {
printf("got frame 1\n\r");
cvSaveImage("webcam1.jpg", frame,0);
} else {
printf("Null frame 1\n\r");
}
frame = cvQueryFrame(camera); //need to capture at least one extra frame
frame = cvQueryFrame(camera);
if (frame != NULL) {
printf("got frame 1\n\r");
cvSaveImage("webcam1.jpg", frame,0);
} else {
printf("Null frame 1\n\r");
}
cvReleaseCapture(&camera);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我写"免费"时说
total used free shared buffers cached
Mem: 241260 221256 20004 0 13748 116184
-/+ buffers/cache: 91324 149936
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
Jon*_*fer 12
你在那里显然是内存不足(268439 > 221256).现在您有两个选择:
像这样创建一个临时交换文件.归结为:
su - root
# for one GB of swap
dd if=/dev/zero of=tmpswap bs=1024 count=1M
mkswap tmpswap
swapon tmpswap
Run Code Online (Sandbox Code Playgroud)
我会选择这种方式作为快速修复,更不用说你真的应该与少量的内存交换.
如果您希望将此更改永久化,请阅读该文章,其中包含有关权限和fstab的一些有价值的提示.
尝试简化代码,这样cc1就不需要那么多内存.不知道怎么做.
| 归档时间: |
|
| 查看次数: |
13058 次 |
| 最近记录: |