gcc: 未定义的函数引用
gcc: undefined reference to function
我知道有很多类似的问题,但我别无选择,只能 post 这个问题,因为即使经过数小时的谷歌搜索,我也没有找到问题的答案。感谢您的理解。
我用 gcc 链接如下。
gcc myprogram.c csapp.c -o a.out
csapp.c 定义了 myprogram.c 中使用的函数。 Myprogram.c 包括 csapp.h.
出现以下错误:
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_create':
csapp.c:(.text+0x121e): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_cancel':
csapp.c:(.text+0x1257): undefined reference to `pthread_cancel'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_join':
csapp.c:(.text+0x129b): undefined reference to `pthread_join'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_detach':
csapp.c:(.text+0x12d4): undefined reference to `pthread_detach'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_once':
csapp.c:(.text+0x1343): undefined reference to `pthread_once'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Sem_init':
csapp.c:(.text+0x1370): undefined reference to `sem_init'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `P':
csapp.c:(.text+0x139f): undefined reference to `sem_wait'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `V':
csapp.c:(.text+0x13ce): undefined reference to `sem_post'
collect2: error: ld returned 1 exit status
这些肯定是在csapp.c中定义的。为什么会出现这些错误?
你应该用 -pthread
编译和 link
我知道有很多类似的问题,但我别无选择,只能 post 这个问题,因为即使经过数小时的谷歌搜索,我也没有找到问题的答案。感谢您的理解。
我用 gcc 链接如下。
gcc myprogram.c csapp.c -o a.out
csapp.c 定义了 myprogram.c 中使用的函数。 Myprogram.c 包括 csapp.h.
出现以下错误:
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_create':
csapp.c:(.text+0x121e): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_cancel':
csapp.c:(.text+0x1257): undefined reference to `pthread_cancel'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_join':
csapp.c:(.text+0x129b): undefined reference to `pthread_join'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_detach':
csapp.c:(.text+0x12d4): undefined reference to `pthread_detach'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Pthread_once':
csapp.c:(.text+0x1343): undefined reference to `pthread_once'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `Sem_init':
csapp.c:(.text+0x1370): undefined reference to `sem_init'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `P':
csapp.c:(.text+0x139f): undefined reference to `sem_wait'
/usr/bin/ld: /tmp/ccIWxAk3.o: in function `V':
csapp.c:(.text+0x13ce): undefined reference to `sem_post'
collect2: error: ld returned 1 exit status
这些肯定是在csapp.c中定义的。为什么会出现这些错误?
你应该用 -pthread