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

自己编的动态库与应用程序必须使用一个(版本)gcc吗?

    来源: 互联网  发布时间:2016-11-01

    本文导语:  本帖最后由 feiyinzilgd 于 2010-12-30 12:00:18 编辑 比如用gcc4编了一个so文件 应用程序用gcc3编译, 里面调用so文件中的函数, 是不是不可以啊 | 本帖最后由 feiyinzilgd 于 2010-12-30 12:43:37 编辑 不一定。 比如嵌...

本帖最后由 feiyinzilgd 于 2010-12-30 12:00:18 编辑
比如用gcc4编了一个so文件
应用程序用gcc3编译, 里面调用so文件中的函数,
是不是不可以啊

|
本帖最后由 feiyinzilgd 于 2010-12-30 12:43:37 编辑



不一定。

比如嵌入式里面。

你必须保证你的开发板的Linux以及根文件系统,还有应用程序是同一个gcc.

也就是说:如果你的开发板的Linux和根文件系统都是用gcc4.3.2编译的。

然后你写应用程序用的是gcc3.2.1编译的,那么程序运行的时候很可能就出问题。

这个东西我也没仔细研究过。

希望大家一起讨论,讨论。


|
我也觉得应该可以,系统是版本一样的API就没变,编译器也不会因为版本的变化而作不同的函数签名改编吧,要是那样的话岂不是很变态?

|

ppc呢?aix呢?

|
应根据具体情况而定!

|
不一定要完全使用同一个版本,但版本间的差异不能太大了。就如你用一个2.xxx版本编译的程序不能在RHEL5运行一样。规根结底看两不同编译器对动态库的约定是不是一样的。

|
我遇到过,我编过一个小的测试程序,给朋友用时总是出错,在我这里却是可以的,折腾了好久,后来发现他改调用程序了,编译后就不行了原来编译.so的gcc版本高,编译调用程序的gcc版本低,后来他把.so又重新编译了一遍就好了。
调用程序的gcc版本高的情况我没试过。
用过一些公司给的驱动之类的,其实也就是一动态库,多数情况下他们都要问内核版本,给你该内核系列的,也是有时好用,有时要他们重新编译下。

所以我的结论是,有时可以有时不可以,具体还是看gcc相差多少,感觉差的多了是不行的。
没做过嵌入式,所以上面说的都不包括嵌入式系统的。

|
如果用c语言写的,而且都是同一个Linux内核(主要版本号一致,保证api不发生大的变更)编译的,那么大多数都可以。
如果C++的话,那就几乎不可以了,因为gcc3-4更改了C++异常的处理,而这不通用(如果编译时打开了禁止异常开关,或许可以)。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 可执行程序加载动态库 和 动态库加载动态库 的动态库初始化的问题
  • 程序发布的问题(动态连接库的问题)
  • Linux下写服务程序,程序可以使用配置文件动态链接库吗?
  • linux下链接一个动态库后原有程序不能正常运行
  • 请教关于dlopen,动态库连接程序的输出函数
  • 用GTK开发的程序如何在没有GTK动态连接库的Linux里运行?
  • 如何在程序中动态的加载并且调用另一个编译好的函数?
  • 如何在AIX系统下编写动态库的调用程序
  • 请教:linux的驱动程序如何调用动态连接库?
  • 动态加载网络驱动程序问题
  • 如何使用kdevelop创建动态共享库程序,请高手指点
  • 用Qt3.1.4编写的程序,如何加入动态库呀?诚恳指教!!
  • 如何查看linux动态链接库文件的版本等其他信息 iis7站长之家
  • unix 如何使用xlC_r把程序编译成动态链接库
  • linux中的3D硬件加速支持的动态炫彩桌面功能是如何程序实现的?
  • 我自己写了个程序 程序依赖很多的动态联接库 如何发布这些库文件
  • 如何在java程序中获得拨号上网分配的动态IP?
  • 08048000 是加载动态库的开始地址,还是程序开始运行的地址
  • 用Qt3.1.4编写的程序,如何加入自己编写的另外一个动态库呀?诚恳指教!!
  • 启动vmware时,说“无法定位程序输入点GetRawInputdeviceList于动态链接库user32.dll”
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 动态库调用动态库
  • linux动态链接库里全局变量和静态变量会导致动态库不可重入吗?
  • linux能否成为动态域名解析客户端的动态域名解析服务器?
  • 关于动态菜单项,注意,不是动态菜单(一定给分)
  • Linux下,怎么确定动态库的绝对位置(动态库里面确定)?
  • 为什么动态生成的图片,JSP不能动态的获得
  • 请问:能不能动态的运行时生成对象(动态定义对象), 要涉及到哪些技术, 反射,序列化...??
  • 动态加载动态库问题--在线等
  • C#实现动态显示及动态移除图片方法


  • 站内导航:


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

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

    浙ICP备11055608号-3