1
lu18887 2014-07-21 11:16:32 +08:00
heapsort 很有可能是APUE 里面自己写的函数,检查一下你的INLCUDE路径里面有没有包含这个函数的头文件。 就是 "-I" 这后面的路径。
|
2
bengol 2014-07-21 11:18:10 +08:00
只针对这个错误:可以自己在新的源文件里写个heapsort,编译生成一个.o文件,然后在编译barrier.c时链接进去。或者就直接在barrier.c文件里面写个heapsort的实现
|
3
scalala 2014-07-21 11:23:39 +08:00
--- a/threads/barrier.c
+++ b/threads/barrier.c @@ -12,12 +12,7 @@ long snums[NUMNUM]; pthread_barrier_t b; -#ifdef SOLARIS #define heapsort qsort -#else -extern int heapsort(void *, size_t, size_t, - int (*)(const void *, const void *)); -#endif /* * Compare two long integers (helper function for heapsort) |
4
scalala 2014-07-21 11:24:27 +08:00
linux也用qsort就可以了
|
5
jiang42 2014-07-21 11:37:18 +08:00
话说 Linux 和 Unix 还是有些不同的,换 BSD 系的系统应该会好些
|
6
jamesxu 2014-07-21 11:46:21 +08:00 1
已经在 CentOS 7 下测试搞定了,Ubuntu 下装个 libbsd-dev 就行,CentOS 7 去找 Fedora 源里的 libbsd 源码包,自己重新生成 RPM 文件安装就行
|
7
itsuibi OP @jamesxu应该选择fedora 哪个版本的呢,我刚才装了个redhat 的libbsd 还是不行。
|
8
jamesxu 2014-07-21 12:26:12 +08:00
@itsuibi 我用的 rawhide,编译完上传了:
libbsd: http://pan.baidu.com/s/1c0d8UNe libbsd-devel: http://pan.baidu.com/s/1eQ5VhFO |