引自:http://blog.csdn.net/lyuan13141234/article/details/5667570
在linux下,編譯鏈接的時(shí)候,經(jīng)常會(huì)遇到這樣一個(gè)問題,undefined reference to.....,引起這個(gè)問題的原因在于在鏈接的時(shí)候缺少選項(xiàng)。下面舉幾個(gè)例子,并給出解決辦法。
1、undefined reference to `dlerror'
undefined reference to `dlopen'
undefined reference to `dlerror'
解決辦法:在makefile的LDFLAGS后面把選項(xiàng) -ldl 添加上即可。
2、undefined reference to `main'
解決辦法:在makefile的LDFLAGS后面添加 -nostartfiles 選項(xiàng)。
3、undefined reference to `pthread_setspecific'
undefined reference to `pthread_key_delete'
undefined reference to `pthread_key_create'
解決辦法:在makefile的LDFLAGS后面添加 -lpthread 選項(xiàng)。
4、undefined reference to `clock_gettime'
解決辦法:在makefile的LDFLAGS后面添加 -lrt 選項(xiàng)。
不過要注意的是,如果undefined reference to后面的內(nèi)容是在自己的文件中聲明或定義的東西,就不能用這種方法來解決了。這時(shí)就需要檢查一下自己的makefile涉及到源文件、頭文件的地方是否出錯(cuò)了,也有可能是其他的原因。
posted on 2012-07-04 17:29
一凡 閱讀(5305)
評(píng)論(1) 編輯 收藏 所屬分類:
Linux C