当前位置:  技术问答>linux和unix

不生成so的问题

    来源: 互联网  发布时间:2017-02-10

    本文导语:  小弟linux新手,目前遇到一个问题 在网上找到一个linux程序的源码,执行.configure后生成makefile,makeinstall后能生成对应的so和.a。 然后运行源码里的示例程序(程序会调用这生成的so里的方法)。 现在我自己写了几个...

小弟linux新手,目前遇到一个问题

在网上找到一个linux程序的源码,执行.configure后生成makefile,makeinstall后能生成对应的so和.a。
然后运行源码里的示例程序(程序会调用这生成的so里的方法)。

现在我自己写了几个功能函数,编译成一个静态库libfunc.a,然后想加入到这个程序里,在程序代码里调用我自定义的方法;
添加完我自己的静态库路径后,重新执行./configure --host=arm-linux,生成的makefile也都没有问题,会去链接我的库,(生成的makefile中CFLAGS里有-lfunc),make通过,我也确认程序里已经调用了libfunc.a里的函数(改下函数名报错,改为正确的ok)。

问题来了,so是生成了,但是运行示例程序时会报 undefined symbol:mytest,这个mytest就是我.a里定义的函数。

为什么我make都通过了,在运行程序的时候反而报了个没定义的符号?这个一般不都是在link的时候才会报么?
不解的是,既然make是没问题的,那怎么运行时会报这个错误呢?(找不到这个函数的话,编译时就应该报错了才对)


linux菜鸟,请大家帮助解决一下,谢谢了~~~~

|
你这里说的好像有些问题。

现在我自己写了几个功能函数,编译成一个静态库libfunc.a,然后想加入到这个程序里,在程序代码里调用我自定义的方法;
添加完我自己的静态库路径后,重新执行./configure --host=arm-linux,生成的makefile也都没有问题,会去链接我的库,(生成的makefile中CFLAGS里有-lfunc),make通过,我也确认程序里已经调用了libfunc.a里的函数(改下函数名报错,改为正确的ok)。

问题来了,so是生成了,但是运行示例程序时会报 undefined symbol:mytest,这个mytest就是我.a里定义的函数。

静态库使用时不是用-l的,你的makefile里面有-lfunc说明使用的不是你的静态库而是要使用libfunc.so动态库。

gcc ***  -L**  libfunc.a 这样才是使用静态库的方法吧?  使用-l就默认为使用动态共享库了,所以我觉得你可以试试修改下makefile重新编译一次。

|
http://user.qzone.qq.com/308337370?ptlang=2052&ADUIN=415823335&ADSESSION=1327891069&ADTAG=CLIENT.QQ.4087_FriendTip_QzoneFolder.0

这里有个过程, 给你推荐一下

|
应该是没有link上。。。

|
链接时候-l指定动态库生成二进制可执行程序。
运行时候会加载动态库, 但动态库的查找路径是由LD_LIBRARY_PATH这个环境变量决定的,export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你的so目录

就行了。

    
 
 

您可能感兴趣的文章:

  • 请教根据Makefile.am自动生成Makefile的问题
  • gcc编译的程序生成的map文件问题
  • 用JBuilder生成exe文件,运行出现问题
  • 用mkmf生成makefile的问题
  • jsp生成文件的问题
  • 很菜的问题,关于随机数的生成,高手快进!
  • 关于JBuilder4的IIOP生成问题
  • 关于用tmpnam生成临时文件的问题
  • 关于 MingGW 下 glade 生成 C++/gtk+ 的简单问题
  • 关于linux下生成so文件的问题,请教高手
  • 关于jb生成代码的问题
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • 用户生成类问题
  • 生成随机数的问题。
  • POI生成excel文件的问题!
  • saloris下生成ear问题
  • 关于Makefile自动生成头文件依赖的问题
  • 我有个问题. UNIX环境生成报表,由命令行打印,
  • java开发知识 iis7站长之家
  • 菜鸟问题,怎么引入.jar包?然后生成对象??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux c下利用srand和rand函数生成随机字符串
  • 用JBuilder能将java程序生成exe可执行文件吗?如何生成?
  • Linux下c基于openssl生成MD5的函数
  • 我想问一下,java生成的.class文件能不能通过某种工具生成.exe文件?
  • c#如何生成Excel(.xls和.xlsx)文件
  • 高分求jsp中动态生成图片的相关资料、生成svg格式和pdf格式的资料,不够再加分
  • linux下利用(cat,strings,head,sed)命令生成随机字符串
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • 如何指定用javac编译生成类的存放路径。(最好不要告诉我再生成之后再把文件流重新到出这种)
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • QT Designer生成的代码不能生成可执行程序
  • ORACLE中DBMS_RANDOM随机数生成包
  • 需要从数据库中动态生成的页面是该在SERVLET输出生成,还是应该在JSP编码实现?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • java生成字母数字组合的随机数示例 java生成随机数
  • 请问我用程序如何编辑Adobe Acrobat 5.0的pdf文件(生成报表)啊?或者如何才能将已生成的execl报表转换成pdf格式?
  • 请问用POI生成Excel文件时,怎么能生成边框线条等?
  • php生成短网址 仿微博短网址生成代码
  • 在JB自己生成的EJB客户端的测试代码中都会自动生成,象String url = "t3://localhost:7001";这样的,请问:
  • java随机生成字符串(字符随机生成类 生成随机字符组合)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3