0

我正在全新安装的 Ubuntu 10.10 上安装cminpack 1.1.2。

sudo make在 cminpack 文件夹中运行时,在 52% 处出现以下错误:

[ 52%] 构建 C 对象示例/CMakeFiles/genf77tests.dir/genf77tests.co
/usr/lib/cminpack-1.1.2/examples/genf77tests.c:在函数'main'中:
/usr/lib/cminpack-1.1.2/examples/genf77tests.c:44:警告:赋值使指针从整数而不进行强制转换
/usr/lib/cminpack-1.1.2/examples/genf77tests.c:86:警告:指针和整数之间的比较
链接 C 可执行文件 genf77tests
CMakeFiles/genf77tests.dir/genf77tests.co:在函数“main”中:
genf77tests.c:(.text+0xb5): undefined reference to `strnstr'
genf77tests.c:(.text+0x2a9): undefined reference to `strnstr'
collect2: ld 返回 1 个退出状态
make[2]: *** [examples/genf77tests] 错误 1
make[1]: *** [examples/CMakeFiles/genf77tests.dir/all] 错误 2
make: *** [全部] 错误 2

我看过里面genf77tests.c,并且#include <string.h>在场,所以我不明白为什么会出现问题strnstr

我能做些什么来解决这个问题吗?

4

2 回答 2

3

strnstr是一个非标准函数。具体来说,它不包含在 Glibc 中。写 genf77test.c 的人没有在 Linux/glibc 上测试过...

于 2011-02-13T22:13:39.453 回答
1

strnstr不是标准C;据我所知,它是在 BSD UNIX 系列上提供的。

尽管如此,如果您的编译中唯一的问题是您可以提供它的原型1并将包含其实现的文件添加到要编译的文件中(例如this one)。


  1. 实际上,您甚至可能不需要它:如果编译进入链接阶段并在该阶段失败,您可以解决仅抛出strnstr.
于 2011-02-13T22:17:12.890 回答