LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1149|回复: 2

求助: 生成so,使用so遇到的问题

[复制链接]
发表于 2008-1-30 10:21:57 | 显示全部楼层 |阅读模式
使用动态库时,出现 undefined  symbol 的错误 ,请问可能是什么原因导致的呢?


这个错误是在用 dlsym() 时产生的


谢谢



我以一个简单的例子来说明我遇到的问题。


现有Test.cpp   Test.h        Main.cpp 3个文件。  我现在想将Test.cpp 封装成动态库。

于是我用到以下命令来生成动态库:

g++  -g  -Wall   -c    Test.cpp

g++  -shared  -o  libTest.so  Test.o

然后我想在Main.cpp 中用到libTest.so, 于是我又用到以下命令:

g++   Main.cpp  -ldl   -o   DEMO

在Main.cpp中用到libTest.so里的函数,我使用dlopen()   dlsym(),将我需要用到的函数拉出来的。


我调试时发现  dlopen() 成功,  错误是在 dlsym() 时产生的  (undefined symbol)
发表于 2008-1-30 11:16:47 | 显示全部楼层
没有返回值的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-30 13:34:20 | 显示全部楼层
Post by windwiny;1812607
没有返回值的吗?



你说的是哪个的返回值?

那个undefined  symbol 是我调用dlerror() 捕获到的错误信息
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表