新手求教。。。。有.c .so .h文件的程序要怎么编译???.h .so均不是标准的。。。

ws758749818 2012-11-21 10:51:24
.c文件内容如下


#include "stdio.h"
#include "dlfcn.h"
#include "./密码计算.h"//导出函数声明
#include "stdlib.h"
#define SOFILE "./mm.so"//密码算法动态库位置

void main()
{
void *dp;
char *error;
char name[128]="18952230000";
char password[128]="123456";
char key[128]={0};
dp=dlopen(SOFILE,RTLD_LAZY);
if(dp==NULL)
{
fputs(dlerror(),stderr);
exit(1);
}
getKey=dlsym(dp,"getKey");
error=dlerror();
if(error)
{
fputs(error,stderr);
exit(1);
}

getKey(name,password,key);
printf("%s",key);


}
...全文
187 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
布鲁克斯南南 2012-11-26
  • 打赏
  • 举报
回复
引用 6 楼 xumaojun 的回复:
好好学习怎么写简单的makefile吧
其实也不用写makefile吧, 刚开始的时候你可以,用一些自动生成的makefile的工具,还有你也可以在linux下安装开发环境自动编译的,这样你可以很方便的写代码了 至于makefile,你可以下载一个被人的列子回来改改就好了,刚开始,估计你也不会遇到很大的工程的。
zodiac1111 2012-11-26
  • 打赏
  • 举报
回复
可能是so文件格式,和你运行环境问题 用 file mm.so 查看下文件格式,32位或者64位, 如果你主机是64位而so文件是32位,你又没有so文件的源代码,那么只能交叉编译成32位版本的可执行程序. 编译出来的程序可以在32位机上运行.
引用 5 楼 ws758749818 的回复:
引用 4 楼 zmlovelx 的回复:比如有:a.h b.c c.so gcc a.h b.c -lc -o target mm.so: wrong ELF class: ELFCLASS32出现这个怎么破。。。。额。。
ws758749818 2012-11-21
  • 打赏
  • 举报
回复
引用 4 楼 zmlovelx 的回复:
比如有:a.h b.c c.so gcc a.h b.c -lc -o target
mm.so: wrong ELF class: ELFCLASS32出现这个怎么破。。。。额。。
帅得不敢出门 2012-11-21
  • 打赏
  • 举报
回复
比如有:a.h b.c c.so gcc a.h b.c -lc -o target
ws758749818 2012-11-21
  • 打赏
  • 举报
回复
啊。。。这个不是我编的。。。。
引用
给你个建议,好好学习C语言,再来学linux相关的。 居然还有中文的头文件, getKey没声明就使用。
fdl19881 2012-11-21
  • 打赏
  • 举报
回复
给你个建议,好好学习C语言,再来学linux相关的。 居然还有中文的头文件, getKey没声明就使用。
xumaojun 2012-11-21
  • 打赏
  • 举报
回复
好好学习怎么写简单的makefile吧
ws758749818 2012-11-21
  • 打赏
  • 举报
回复
自己顶一下。。。。。啊 来人吧 救救我这个菜鸟吧。。。

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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