1
在FreeBSD 9.2編寫交流節目時爲什麼cpp告訴我'未定義的引用mtx_init'?我已經包括了頭
我想使用互斥鎖來幫助我控制某些變量的值,
和我讀到這個參考我得到了一些問題: http://www.freebsd.org/cgi/man.cgi?query=mutex&sektion=9
我已經包含這些頭
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/param.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/kernel.h>
#include <sys/_mutex.h>
但CPP總是告訴我這些:
3.c:(.text+0x25): undefined reference to `mtx_init'
3.c:(.text+0xa0): undefined reference to `mtx_trylock'
3.c:(.text+0xd3): undefined reference to `mtx_unlock'
我使用這個命令編譯:
gcc 3.c
請幫我找出問題!謝謝!!!
這些函數在哪裏定義?在另一個源/目標文件中?在圖書館?您需要*鏈接*與該源/目標文件或庫。 –
@JoachimPileborg恕我直言,這些是內核級函數(鏈接指的是內核開發手冊頁) –
您所指的部分是關於內核級別的互斥函數。假設你正在實現一個用戶空間應用程序,而不是一個內核模塊,你需要使用像'pthread_mutex_'這樣的用戶空間函數(例如http://linux.die.net/man/3/pthread_mutex_init) –