一个crypt函数的问题

calnastic 2008-11-23 11:21:11
我正在写的一个作业里面,要用到crypt这个函数,
程序的相关部分为:

string encrypt(const string & key)
{

char salt[] = "$1$........";

char * password = new char [100];
strcpy ( password, crypt(key.c_str(), salt));

return password ;
}



//makefile是这样的
all: encrypt1.x

encrypt1.x: encrypt.o
g++ -o encrypt1.x encrypt1.o

encrypt1.o: ./encrypt1.cpp
g++ -I. -c ./encrypt1.cpp

clean:
rm -f *.o *.x *~
~


编译的时候提示
encrypt1.o: In function `encrypt(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
encrypt1.cpp:(.text+0x15a): undefined reference to `crypt'

请问我该如何解决?
谢谢!
...全文
660 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zrf2222 2012-02-21
  • 打赏
  • 举报
回复
gcc api.c -fPIC -shared -o lib_api.so -lcrypt
编译的末尾加上 -lcrypt
newercoming 2009-03-09
  • 打赏
  • 举报
回复
-lcrypt
calnastic 2008-11-23
  • 打赏
  • 举报
回复
很抱歉还要请你再看看,我在终端输入之后,告知没有manual entry

shio@strelis:~/Assignment/alpha/t$ man 3 crypt
No manual entry for crypt in section 3
shio@strelis:~/Assignment/alpha/t$ man 2 crypt
No manual entry for crypt in section 2


是不是表示没有安装crypt文件呢?
就呆在云上 2008-11-23
  • 打赏
  • 举报
回复
那你这样吧:
你在终端上输入:
man 3 crypt
或者
man 2 crypt

就可以得到一些关于这个函数的描述
你再看看它是在那个函数头文件里面含带的,带进来就是了
呵呵
calnastic 2008-11-23
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

都包括了。还是不行 :(
calnastic 2008-11-23
  • 打赏
  • 举报
回复
已经包含了#include <string.h>。
但是不行。
就呆在云上 2008-11-23
  • 打赏
  • 举报
回复
undefined reference to `crypt' 


说明你没有定义crypt或者你用的系统文件没有把crypt的头文件带进来
  #include <stdio.h>     
#include <stdlib.h>
#include <unistd.h>


上面的就是你现在需要带进去的头文件
带进去就可以了
linux下面的加密算法的引用呵呵
wind1373290 2008-11-23
  • 打赏
  • 举报
回复
crypt 把他包引进来了没?(在第一行写#include <string.h>)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧