我一直在使用csapp 3rd Edition的示例,但是我无法使用gcc成功编译csapp网站上的给定代码。
我尝试编译的源代码是“ signal1.c”,其中包括头文件“ csapp.h”,该文件分为源代码“ csapp.c”。
我一直试图通过几种方式来编译“ signal1.c” “ gcc csapp.h csapp.c signal1.c -o signal1” “ gcc csapp.c signal1.c -o signal1”
但只有错误消息说
/tmp/ccGJtkct.o:在函数Pthread_create':
csapp.c:(.text+0x108a): undefined reference to
pthread_create'中
/tmp/ccGJtkct.o:在函数Pthread_cancel':
csapp.c:(.text+0x10bd): undefined reference to
pthread_cancel'中
/tmp/ccGJtkct.o:在函数Pthread_join':
csapp.c:(.text+0x10fb): undefined reference to
pthread_join'中
/tmp/ccGJtkct.o:在函数Pthread_detach':
csapp.c:(.text+0x112e): undefined reference to
pthread_detach'中
/tmp/ccGJtkct.o:在函数Pthread_once':
csapp.c:(.text+0x118f): undefined reference to
pthread_once'中
/tmp/ccGJtkct.o:在函数Sem_init':
csapp.c:(.text+0x11b8): undefined reference to
sem_init中
/tmp/ccGJtkct.o:在函数P':
csapp.c:(.text+0x11e1): undefined reference to
sem_wait中
/tmp/ccGJtkct.o:在函数V':
csapp.c:(.text+0x120a): undefined reference to
sem_post'中
collect2:错误:ld返回1退出状态
我已经检查了头文件“ csapp.h”是否不包含在内,或者我的计算机是否不包含它,但似乎没有。
什么是正确的选择?
谢谢。