2011-02-12 34 views
0

我在Ubuntu 10.10的全新安裝版本上安裝cminpack 1.1.2。「安裝cminpack時未定義引用'strnstr'」

當cminpack文件夾中運行sudo make,52%發生folloing錯誤:

 
[ 52%] Building C object examples/CMakeFiles/genf77tests.dir/genf77tests.c.o 
/usr/lib/cminpack-1.1.2/examples/genf77tests.c: In function ‘main’: 
/usr/lib/cminpack-1.1.2/examples/genf77tests.c:44: warning: assignment makes pointer from integer without a cast 
/usr/lib/cminpack-1.1.2/examples/genf77tests.c:86: warning: comparison between pointer and integer 
Linking C executable genf77tests 
CMakeFiles/genf77tests.dir/genf77tests.c.o: In function `main': 
genf77tests.c:(.text+0xb5): undefined reference to `strnstr' 
genf77tests.c:(.text+0x2a9): undefined reference to `strnstr' 
collect2: ld returned 1 exit status 
make[2]: *** [examples/genf77tests] Error 1 
make[1]: *** [examples/CMakeFiles/genf77tests.dir/all] Error 2 
make: *** [all] Error 2 

我看過裏面genf77tests.c,並#include <string.h>是存在的,所以我不明白爲什麼有問題的發現strnstr

有什麼我可以解決這個問題嗎?

回答

1

strnstr不是標準的C;就我所知,它是在BSD UNIX系列上提供的。

不過,如果你的編譯唯一的問題是,一個可以提供它的原型並添加到文件進行編譯一個包含其執行(例如this one)。


  1. 事實上,你甚至可能不會需要它:如果編譯得到的鏈接階段,失敗就在那裏,你可以解決扔在剛剛的strnstr實施。
+0

工作過一次,感謝。我只是#在問題文件中包含了我自己的strnstr.c。 – 2011-02-14 10:48:17

3

strnstr是一個非標準功能。具體而言,它不包含在Glibc中。誰寫的genf77test.c沒有在Linux/glibc上測試它...

相關問題