- 学过及正在学C/C++ Primer Plus的进来!
- 关于red hat 9.0+eclipse+cdt建C/C++ IDE
- [图文] [求教] /proc/uptime 里面两个数代表啥意思啊..
- Linux 下有C/C++ 的SOAP开发包吗?
- 世界500强-招聘C/C++软件开发工程师(上海),
- 还是昨天那个问题:/etc/profile文件没有被执行
- C/C++ 主流IDE
- /etc/profile生效问题
- [C/C++]进程被kill掉后,由它malloc或者new出来的内..
- [图文] 如何给c/c++源代码加密
- /etc/shadow 是用md5加密的吗
- [图文] 小弟做了一年java,还可以转向linux下C/C++吗?..
- [图文] expect有C/C++的API不?
- 怎么在NetBean里面导入C/C++模块
- [图文] 关于C/C++ 正则表达式库pcre的问题
- 推荐一个下c/c++电子书的地方
- [图文] 发一个能在开辟好的共享内存内进行alloc/free..
- 请教高手关于内存泄露及 /proc/meminfo下slab项的意..
- [图文] proc*c/c++的一个问题,如何从C++到C?
- linux下的pro*c/c++的问题,大家看一看,瞧一瞧了!..
我在主程序中加载插件,进行数据处理
[table=95%][tr][td][font=FixedSys][color=#0000cc]#include <dlfcn.h>
typedef void *atom;
typedef atom (*Element) (atom, char *);
...
...
Element
findSymbol (char *name)
{
static void *plugin;
plugin = dlopen ("./plugin", RTLD_NOW);
if (plugin)
{
return dlsym (plugin, name);
}
printf ("%s", dlerror ());
return NULL;
}[/color][/font][/td][/tr][/table]
当插件使用C编写时候没有任何问题,但是使用C++编写时,dlopen不能正确的解析符号,于是查找资料,看到这篇文章中提到了C++的“name mangling”(http://linux.web.cern.ch/linux/documentation/mirror/howto/C++-dlopen.html),发现在不得不在主程序中链接插件依赖的一些库,于是使用C++编译器编译主程序,结果出现有名的void*指针问题
[table=95%][tr][td][font=FixedSys]pipeline.c: In function ‘void* (* findSymbol(char*))(void*, char*)’:
pipeline.c:49: 错误:从类型 ‘void*’ 到类型 ‘void* (*)(void*, char*)’ 的转换无效[/font][/td][/tr][/table]
函数findSymbol不能通过编译,请高手指点

