Leeheng86/word2vec

malloc.h

Opened this issue · 9 comments

What steps will reproduce the problem?
1. make on Mac
2.
3.

What is the expected output? What do you see instead?
distance.c:18:10: fatal error: 'malloc.h' file not found
#include <malloc.h>
         ^
1 error generated.
make: *** [distance] Error 1

What version of the product are you using? On what operating system?
OSX 10.9.4

Please provide any additional information below.
I fixed it by replacing malloc.h with stdlib.h

Original issue reported on code.google.com by freqyi...@gmail.com on 17 Jul 2014 at 5:44

malloc.h is non-standard linux-specific header.
malloc() function always exists in stdlib.h - it's guaranteed by standard.
So, stdlib.h is much better than malloc.h

Original comment by alex.y.t...@gmail.com on 2 Dec 2014 at 11:05

Dirty solution, but it works:
In OSx Lion, Mountain Lion, Maveriks, Yosemite, the lib malloc.h is in the 
directory /usr/include/malloc
So, do:

 cd /usr/include/malloc
 sudo cp malloc.h ..

and then go to your word2vec folder and compile with make.

Original comment by zuccongu...@gmail.com on 13 Jan 2015 at 1:38

Dirty solution did not work for me:

distance.c:18:10: fatal error: 'malloc.h' file not found
#include <malloc.h>
         ^
1 error generated.
make: *** [distance] Error 1
$cp /usr/include/malloc/malloc.h .
$make
gcc distance.c -o distance -lm -pthread -O3 -march=native -Wall -funroll-loops 
-Wno-unused-result
distance.c:18:10: error: 'malloc.h' file not found with <angled> include; use 
"quotes" instead
#include <malloc.h>
         ^~~~~~~~~~
         "malloc.h"
distance.c:46:19: warning: implicitly declaring library function 'malloc' with 
type 'void *(unsigned long)'
  vocab = (char *)malloc((long long)words * max_w * sizeof(char));
                  ^
distance.c:46:19: note: please include the header <stdlib.h> or explicitly 
provide a declaration for 'malloc'
distance.c:31:8: warning: unused variable 'ch' [-Wunused-variable]
  char ch;
       ^
2 warnings and 1 error generated.
make: *** [distance] Error 1

Original comment by alexande...@gmail.com on 30 Jan 2015 at 8:08

You have to change <malloc.h> to "malloc.h" in all of the c files. Then it will 
compiles on osx.

Original comment by erroneou...@gmail.com on 10 Feb 2015 at 7:00

"malloc.h" must be removed from anywhere as a non-standatd header.
"stdlib.h" must be used instead.

See here 
http://stackoverflow.com/questions/12973311/difference-between-stdlib-h-and-mall
oc-h

Original comment by alex.y.t...@gmail.com on 10 Feb 2015 at 8:55

Yup, replacing "malloc.h" with "stdlib.h" in three c files got it working on my 
MacBook.

Original comment by pbro...@deepmile.com on 8 Apr 2015 at 9:32

because "stdlib.h" already exist in files, just delete "malloc.h".
 it works on my mac

Original comment by hxy...@gmail.com on 22 Apr 2015 at 3:19

Hello,guys! I have the same problem. I could not find both of "malloc.h" and 
"stdlib.h" , how could I replace them or delete them? Did I forget to download 
something? I am trying to install htk. Please give me a suggestion. Thank you!!!

Original comment by lilanlan...@gmail.com on 4 May 2015 at 8:11

Hey, they should already be on your system. Just replace the references in
the downloaded code.

-- Peter

Original comment by pbro...@deepmile.com on 4 May 2015 at 8:15