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

生成so文件是否可以再引用so文件?

    来源: 互联网  发布时间:2016-06-17

    本文导语:  我现在有一任务,就是再封装一些so文件所提供的函数(),我自己封装好后的也以so 文件的形式发布, 一开始我编译文件的命令是: g++  -o my.so myinterface.cpp  a.so b.so -pthread link的时候报错: undefined reference to "Provide_Fun...

我现在有一任务,就是再封装一些so文件所提供的函数(),我自己封装好后的也以so 文件的形式发布,
一开始我编译文件的命令是:
g++  -o my.so myinterface.cpp  a.so b.so -pthread

link的时候报错:
undefined reference to "Provide_Function1(int i)"  
说明: Provide_Function1()是其它so文件所提供的接口函数,有一头文件是声明了这些函数的。

然后我再用
g++  -shared -o my.so myinterface.cpp  a.so b.so -pthread
命令时候就不会报错.

请问各位兄弟,能否解释一下这问题产生的原因和解决方法?
然后,我用我封装后的so文件,提供给第三方使用时候,当第三方编译的时候,不用 -shared 选项时也会link的时候报错:
undefined reference to "Provide_Function1(int i)" 

当第三方编译的时候,用 -shared 选项时能成功生成可执行文件,但是一运行可执行文件就报错:
是一段错误报告,具体如下:
line 2: 2179 段错误 

请问各位兄弟,有没有啥好解决的方法?


|
g++  -shared -o my.so myinterface.cpp  a.so b.so -pthread 
命令时候就不会报错. 

就应该这么做,目前你做的是一个so库,所以编译的时候应该加上-shared。


当你编译一个应用程序时候,头文件正确的话,库link正确的话,编译时不会报undefined reference to "Provide_Function1(int i)" ,到运行时才找实体。

所以楼主生成so用g++  -shared -o my.so myinterface.cpp  a.so b.so -pthread就可以。

|


一般在linux系统的标准的库目录:如/lib;/usr/lib等几个目录下,当你增加新的库进去,
需要运行lddconfig命令,就会把你的库名字加入到/etc/ld.so.cache文件里,那么系统首先访问这个文件
就快速的找到你的新增加的库了

一般系统到这几个目录没有找到你的动态库文件,那么就会找当前目录文件"."看看有没有库,忘记具体顺序了

其它目录的库可以在/etc/ld.so.conf.d/*.conf指定位置,也是需要运行lddconfig加入的那个缓冲文件的

还有种方法系统也会去查找$LD_LIBRARY_PATH环境变量所指的路径查找你的库,以上都没有,那么就不可以运行 


|


    大概 不 行 ,so 相当与.o 文件.
  以前 用静态库 我 试试,是没 行通.

|
楼主也以my.a静态库发布

|
顶10楼……

    
 
 

您可能感兴趣的文章:

  • c#如何生成Excel(.xls和.xlsx)文件
  • 我想问一下,java生成的.class文件能不能通过某种工具生成.exe文件?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • 用JBuilder能将java程序生成exe可执行文件吗?如何生成?
  • 如何指定用javac编译生成类的存放路径。(最好不要告诉我再生成之后再把文件流重新到出这种)
  • 如何为某个内核文件生成.i文件
  • vim生成的.cpp~是什么文件?我使用vim编辑的时候出现了好多.cpp~文件
  • 请问我用程序如何编辑Adobe Acrobat 5.0的pdf文件(生成报表)啊?或者如何才能将已生成的execl报表转换成pdf格式?
  • 用JCreator Compile文件结果找不到生成的class文件
  • 请问,有什么办法可以把html文件生成pdf/excel格式的文件
  • shell脚本剪切文件文件,并生成新文件的问题
  • 怎样生成用“tar zxf 文件“来解压的*.tar.gz文件
  • ********怎么从*.c文件生成*.sl库文件********
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 根据Hibernte的cfg文件生成sql文件
  • 如何生成任意文件名的.out 文件
  • 实现core文件自动生成配置文件的方法
  • 请问用POI生成Excel文件时,怎么能生成边框线条等?
  • cpp文件如何自动生成Makefile文件
  • 通过shell解析文件,并根据解析内容生成新的文件。
  • 请问在C文件中如何引用 C++ 生成库?
  • 简单小问题,指点迷津。不是一个包中类可以不引用随便调用么?我在jb使用中,用自己做的类生成对象,怎么说找不到?
  • jsp引用servlet生成的验证码代码演示
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux c下利用srand和rand函数生成随机字符串
  • 高分求jsp中动态生成图片的相关资料、生成svg格式和pdf格式的资料,不够再加分
  • Linux下c基于openssl生成MD5的函数
  • QT Designer生成的代码不能生成可执行程序
  • linux下利用(cat,strings,head,sed)命令生成随机字符串
  • 需要从数据库中动态生成的页面是该在SERVLET输出生成,还是应该在JSP编码实现?
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • java生成字母数字组合的随机数示例 java生成随机数
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • php生成短网址 仿微博短网址生成代码
  • ORACLE中DBMS_RANDOM随机数生成包
  • 在JB自己生成的EJB客户端的测试代码中都会自动生成,象String url = "t3://localhost:7001";这样的,请问:
  • java随机生成字符串(字符随机生成类 生成随机字符组合)
  • 我在SRC目录下写好的源程序,我怎样能写个脚本把写好的源程序放在BIN下呢?另外我想把该程序的输出结果(生成了几个文件),生成到out目录下,
  • php生成订单号的类 php订单号生成代码
  • php实现在线生成条形码示例分享(条形码生成器)
  • 动态xml生成可行性?
  • 网络相册生成工具 Xiss web
  • [高分求教]怎么自动生成makefile
  • 怎么生成互不相同的随机IP
  • Javascript生成图表的类库 AwesomeChartJS


  • 站内导航:


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

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

    浙ICP备11055608号-3