6
我在系統中安裝了Ubuntu 11。我有一個使用pthread庫的c程序。 即使我編譯了國旗-lpthread
,我也會得到錯誤Undefined reference to sem_wait()
。gcc -lpthread無法正常工作
例如:
gcc -lpthread prog.c
該方案適用於其他的Ubuntu安裝的罰款。
我在系統中安裝了Ubuntu 11。我有一個使用pthread庫的c程序。 即使我編譯了國旗-lpthread
,我也會得到錯誤Undefined reference to sem_wait()
。gcc -lpthread無法正常工作
例如:
gcc -lpthread prog.c
該方案適用於其他的Ubuntu安裝的罰款。
嘗試:
gcc -pthread
,而不是-lpthread
。我相信這種差異是顯着的。後者是鏈接到libpthread
,前者是鏈接反對libpthread和一堆其他的東西呢!
sem_wait
是librt的一部分,所以你可以使用gcc -lrt
,但-pthread
爲你做了這些(以及其他所有的事情!)。
謝謝!這工作正常。 –
你可以嘗試用pthread調用編譯別的東西嗎? – DanZimm
鏈接順序很重要。圖書館只能到最後。 –