在linux应用程序中使用了多线程编程,但是makefile编译却报如下错误:
/tmp/cc5i6uH7.o:在函数‘main’中:
tcpSever.c:(.text+0x62):对‘modRegInit’未定义的引用
tcpSever.c:(.text+0x76):对‘ryS’未定义的引用
tcpSever.c:(.text+0xc0):对‘ryS’未定义的引用
tcpSever.c:(.text+0x10a):对‘ryS’未定义的引用
tcpSever.c:(.text+0x14e):对‘ryS’未定义的引用
collect2: error: ld returned 1 exit status
网上查找解决方案,发现修改makefile即可。如下
test: rySys.o tcpSever.o
gcc -o test rySys.o tcpSever.o -lpthread
rySys.o: rySys.c rySys.h
gcc -c rySys.c -lpthread
tcpSever.o: tcpSever.c rySys.c rySys.h
gcc -c tcpSever.c -lpthread
clean:
rm *.o
rm test
以上~