sfrsky / word2vec

Automatically exported from code.google.com/p/word2vec
Apache License 2.0
0 stars 0 forks source link

malloc.h #17

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
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

GoogleCodeExporter commented 9 years ago
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

GoogleCodeExporter commented 9 years ago
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

GoogleCodeExporter commented 9 years ago
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

GoogleCodeExporter commented 9 years ago
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

GoogleCodeExporter commented 9 years ago
"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

GoogleCodeExporter commented 9 years ago
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

GoogleCodeExporter commented 9 years ago
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