c程序调dlopen C++的动态库的问题,急!

himachao 2003-08-23 05:11:51
c程序调dlopen C++的动态库时,报符号__1c2n6FI_pv_: 参照的符号没有找到

查到原因是c++中使用了new,但又不能不用new ,这该如何解决?
new 是在c++中那个库中实现的?
...全文
183 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2003-08-26
  • 打赏
  • 举报
回复
__1c2n6FI_pv_是被g++ mangle后的符号名。
epico 2003-08-26
  • 打赏
  • 举报
回复
该用动态连接库吧,应该可以解决问题的
to fierygnu:
__1c2n6FI_pv_这个函数的名字不像哪个库输出的函数
如果用so格式的话应该会自动加载库的
我只是猜测而已
fierygnu 2003-08-26
  • 打赏
  • 举报
回复
现在楼主的应用不是dlopen符号找不到,是dlopen在装载动态库时就出问题,这个和extern "C"没有关系。即使用extern "C"声明和定义了,一样会出现在的问题。
epico 2003-08-26
  • 打赏
  • 举报
回复
create 函数应该说明为c函数,并在函数表中输出
cpp文件最好生成so文件

gnu c++ :libstdc++.a
epico 2003-08-26
  • 打赏
  • 举报
回复
in cpp file
extern "C" void * create();
void * create (){
return new MyClass();
}

in c file :
dlopen(fp,"create");
void * myclass=create();
fierygnu 2003-08-25
  • 打赏
  • 举报
回复
叫什么名字也不能连接到C程序里。最好把你的主程序用C++编写,这样就可以解决问题。
himachao 2003-08-25
  • 打赏
  • 举报
回复
我的动态库动态连接的C++标准库叫什么名字呀?
fierygnu 2003-08-24
  • 打赏
  • 举报
回复
你的动态库动态连接的C++标准库在你的C主程序里没有连接,所以有这个问题。
yiyi999999999 2003-08-23
  • 打赏
  • 举报
回复
new用malloc,delete用free
头文件为stdlib.h
axlw 2003-08-23
  • 打赏
  • 举报
回复
malloc

23,115

社区成员

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

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