[zz@localhost trunk]$ x86_64-w64-mingw32-gcc word2vec.c -o word2vec.exe word2vec.c:19:10: error: #include expects "FILENAME" or <FILENAME> #include pthread.h ^ word2vec.c:46:1: error: unknown type name 'clock_t' clock_t start; ^ word2vec.c: In function 'TrainModelThread': word2vec.c:368:3: error: unknown type name 'clock_t' clock_t now; ^ word2vec.c:381:63: error: 'CLOCKS_PER_SEC' undeclared (first use in this function) word_count_actual / ((real)(now - start + 1) / (real)CLOCKS_PER_SEC * 1000)); ^ word2vec.c:381:63: note: each undeclared identifier is reported only once for each function it appears in word2vec.c: In function 'TrainModel': word2vec.c:547:3: error: unknown type name 'pthread_t' pthread_t *pt = (pthread_t *)malloc(num_threads * sizeof(pthread_t)); ^ word2vec.c:547:20: error: 'pthread_t' undeclared (first use in this function) pthread_t *pt = (pthread_t *)malloc(num_threads * sizeof(pthread_t)); ^ word2vec.c:547:31: error: expected expression before ')' token pthread_t *pt = (pthread_t *)malloc(num_threads * sizeof(pthread_t)); ^ word2vec.c:556:84: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] for (a = 0; a < num_threads; a++) pthread_create(&pt[a], NULL, TrainModelThread, (void *)a); ^
[zz@localhost trunk]$ x86_64-w64-mingw32-gcc word2vec.c -o word2vec.exe word2vec.c:46:1: error: unknown type name 'clock_t' clock_t start; ^ word2vec.c: In function 'TrainModelThread': word2vec.c:368:3: error: unknown type name 'clock_t' clock_t now; ^ word2vec.c:381:63: error: 'CLOCKS_PER_SEC' undeclared (first use in this function) word_count_actual / ((real)(now - start + 1) / (real)CLOCKS_PER_SEC * 1000)); ^ word2vec.c:381:63: note: each undeclared identifier is reported only once for each function it appears in word2vec.c: In function 'TrainModel': word2vec.c:556:84: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] for (a = 0; a < num_threads; a++) pthread_create(&pt[a], NULL, TrainModelThread, (void *)a); ^
第一次在 centos 下编译 exe。
出现这种错误,不知道怎么办??
直接 make 出来的,可以运行。但我想要在 win 下的。
谢谢
有pthread.h
[zz@localhost trunk]$ x86_64-w64-mingw32-gcc word2vec.c -o word2vec.exe word2vec.c:46:1: error: unknown type name 'clock_t' clock_t start; ^ word2vec.c: In function 'TrainModelThread': word2vec.c:368:3: error: unknown type name 'clock_t' clock_t now; ^ word2vec.c:381:63: error: 'CLOCKS_PER_SEC' undeclared (first use in this function) word_count_actual / ((real)(now - start + 1) / (real)CLOCKS_PER_SEC * 1000)); ^ word2vec.c:381:63: note: each undeclared identifier is reported only once for each function it appears in word2vec.c: In function 'TrainModel': word2vec.c:556:84: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] for (a = 0; a < num_threads; a++) pthread_create(&pt[a], NULL, TrainModelThread, (void *)a); ^
这是加了pthread.h后的错误。
![]() | 1 visitant 2018-10-05 17:52:13 +08:00 via iPad 看起来是需要链接 pthread 库啊,windows+pthread 搜索一下吧 |
![]() | 2 visitant 2018-10-06 01:33:34 +08:00 via iPad clock_t 这个类型好像在标准库里就有,试下包含 windows.h 头文件,而且直接在 win 下编译不好吗,非要交叉编译不可? |
![]() | 3 msg7086 2018-10-06 04:35:30 +08:00 其实我还是建议你先在 Windows 版的 mingw 里试试…… |
4 shiyouming91 2018-10-06 08:53:37 +08:00 via iPhone include time.h 了么? |