Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers.

Some problems with `make`

0 votes
Hi, I used the default command to create a project and successfully built a it with ./rebuild-host.sh. After that, I modify my code and try to rebuild that by

> cd hbuild/ && make

But an error happened and the `make` just stuck (no CPU use, nothing was being compiled). I have to terminate it with Ctrl+C:

[ 50%] Built target jevoisnn
[ 66%] Generating ../src/Modules/Mnist/modinfo.yaml, ../src/Modules/Mnist/modinfo.html
error: Tag file `/jevois/doc/jevois.tag' does not exist or is not a file. Skipping it...
find: ‘../../../include/jevoisbase/Components/’: No such file or directory
^CCMakeFiles/modinfo_Mnist.dir/build.make:61: recipe for target '../src/Modules/Mnist/modinfo.yaml' failed
make[2]: *** [../src/Modules/Mnist/modinfo.yaml] Interrupt
CMakeFiles/Makefile2:174: recipe for target 'CMakeFiles/modinfo_Mnist.dir/all' failed
make[1]: *** [CMakeFiles/modinfo_Mnist.dir/all] Interrupt
Makefile:127: recipe for target 'all' failed
make: *** [all] Interrupt

Immediately after that, I can compile it by typing `make` again. Everything is okey this time, which is wired.

I didn't use jevoisbase in my project. I built my components into a library called jevoisnn. But as the log displayed, the makefile still tried to locate ../../../include/jevoisbase/Components/’.

I surmise that there is something in CMakeList might cause this problem. I am looking forward to your reply.
asked Sep 5, 2017 in Programmer Questions by Dextrous (240 points)

1 Answer

0 votes

You are probably running out of memory and/or swapping the first time by trying to compile one file per CPU core. Then later when you just type make you are only using 1 core so you are ok. tiny-dnn is all template code so it needs lots of memory to compile. You can adjust the number of parallel compile jobs by editing rebuild-host.sh

answered Sep 8, 2017 by JeVois (26,700 points)
I don't think the reason is the memory allocation. In my project, I tried to include the components from jevoisbase without implementing it again and link my project with libjevoisbase.so. When I use the function "addSubComponent", the CMake has to locate some files before compiling. One of these is `src/Components` and I guess it is trying to locate other document files as well. Can you resolve that?