gcc cc1: out of memory allocating
19,038
You're obviusly out of memory there (268439 > 221256
). Now you have two options:
-
Create a temporary swap file like this. It boils down to:
su - root # for one GB of swap dd if=/dev/zero of=tmpswap bs=1024 count=1M mkswap tmpswap swapon tmpswap
I would opt for this way as a quick fix, not to mention that you really should have a bit of swap with that small amount of memory.
Read the article if you want to make this change permanent, it contains some valuable hints regarding permissions and fstab.
Try to simplify your code so that
cc1
does not need so much memory. No idea how to do that though.
Related videos on Youtube
Author by
user1336117
Updated on August 18, 2022Comments
-
user1336117 over 1 year
I am trying to compile a source code in my BeagleBoard with Angstrom Linux. Yesterday I was able to compile my code. But today I can not compile the code and it says:
ccl: out of memory allocating 268439608 bytes after a total of 405504 bytes make *** [getimagefromcam1.o] Error 1
My compilation string is:
gcc getimagefromcam1.c `pkg-config --cflags --libs opencv` -o getimagefromcam1 -lpthread
Code is:
#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; }
when I write "free" is says
total used free shared buffers cached Mem: 241260 221256 20004 0 13748 116184 -/+ buffers/cache: 91324 149936 Swap: 0 0 0
How can I solve it?
-
user1336117 almost 12 yearsIt solved but here I see a new error: attempt to access beyond end of device mmcblk0p2: rw=0, want=34359738368, limit=15433728 attempt to access beyond end of device mmcblk0p2: rw=0, want=34359738368, limit=15433728
-
Jonas Schäfer almost 12 yearsSounds not good, but I do not know where hat could come from.
-
askvictor almost 8 yearsI'd suggest using fallocate instead of dd as it's considerably faster:
fallocate -l 1G tmpswap
-
Jonas Schäfer almost 8 years@askvictor Oh nice, I did not know that. I know that
truncate
does not work because it creates a sparse file whichswapon
does not like (understandably). Will edit. -
Sauron over 5 yearsThe advice about fallocate is not correct: unix.stackexchange.com/a/294605/229227
-
Jonas Schäfer over 5 years@Sauron Indeed. Fixed.