当前位置: 技术问答>linux和unix
初学者的疑问?
来源: 互联网 发布时间:2017-04-15
本文导语: 目前我在移植MiniGUI到Linux上的时候有遇到以下几个问题,MiniGUI编译安装配置全部OK,想使用一下MiniGUI, 然后我自己编写代码实现一个简单的窗口,编译成.so文件,只导出一个Show函数,然后再写一个简单的Main.cpp调用...
目前我在移植MiniGUI到Linux上的时候有遇到以下几个问题,MiniGUI编译安装配置全部OK,想使用一下MiniGUI, 然后我自己编写代码实现一个简单的窗口,编译成.so文件,只导出一个Show函数,然后再写一个简单的Main.cpp调用该.so文件中的导出函数,两个文件编译都没有问题,到输出目标文件(xx.so, a.out),然后执行./a.out, 出现undefine symbol: GetSysCharset,
而GetSysCharset是定义在MiniGUI库的libminigui_ths-3.0.so.12中,我把libminigui_ths-3.0.so.12拷贝到a.out所在的目录也不能使用,是不是在生成xx.so文件的时候把该文件链接进去呢?可是libminigui_ths-3.0.so.12好像是动态库,不能链接进去,linux不熟悉,不知道如何解决这个问题?
可是去执行miniGUI的sample code程序,如helloworld, 能正常执行,然后objdump -tT ./helloworld, 也发现GetSysCharset是undefine的状态,那执行的时候它是如何去加载libminigui_ths-3.0.so.12这个库的?
在main.cpp中执行:
pMod = dlopen("xx.so", RTLD_LAZY);
if (NULL == pMod)
{
//cout
而GetSysCharset是定义在MiniGUI库的libminigui_ths-3.0.so.12中,我把libminigui_ths-3.0.so.12拷贝到a.out所在的目录也不能使用,是不是在生成xx.so文件的时候把该文件链接进去呢?可是libminigui_ths-3.0.so.12好像是动态库,不能链接进去,linux不熟悉,不知道如何解决这个问题?
可是去执行miniGUI的sample code程序,如helloworld, 能正常执行,然后objdump -tT ./helloworld, 也发现GetSysCharset是undefine的状态,那执行的时候它是如何去加载libminigui_ths-3.0.so.12这个库的?
在main.cpp中执行:
pMod = dlopen("xx.so", RTLD_LAZY);
if (NULL == pMod)
{
//cout
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
©2012-2021,