我正在安装cminpack 1.1.2安装Ubuntu 10.10。
在cminpack文件夹中运行sudo make
时,以下错误发生在52%:
[ 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
时出现问题的原因。
我有什么办法可以解决这个问题吗?
答案 0 :(得分:3)
strnstr
是非标准功能。具体而言,它不包含在Glibc中。编写genf77test.c的人没有在Linux / glibc上测试它......
答案 1 :(得分:1)
strnstr
不是标准C;据我所知,它是在BSD UNIX系列上提供的。
但是,如果您的编译中唯一的问题是您可以提供其原型 1 ,并添加到要编译的文件中,其中包含其实现(例如this one)
strnstr
。