因为 pthread_create 和 pthread_detach 函数不是 Linux 的内建函数,所以在对使用了多线程技术的工程进行编译链接生产可执行文件时,需要在链接过程添加 -pthread 参数。
根据 Linux 中man出的帮助信息也可以看到相应的提示“Compile and link with -pthread”。
所以makefile应该这么写:
testPthread: testPthread.o
gcc -o testPthread -pthread testPthread.o
#在链接时添加 -pthread 参数
testPthread.o: testPthread.c
gcc -c testPthread.c
clean:
rm -f testPthread testPthread.o
这样在编译工程时就不会提示“未定义的引用”了。