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

动态库调用静态库,编译时出错

    来源: 互联网  发布时间:2016-03-25

    本文导语:  系统环境:Solaris 9 Makefile如下:  ...  CC=g++  CFLASS=-Wall -o -g -fpic  BaseChar.o: BaseChar.cpp BaseChar.h jpeglib.h  $(CC) $(CFLASS) -c BaseChar.cpp -o BaseChar.o  ...  以上编译通过。 g++ BaseChar.o libjpeg.a -shared -o libBMP.so //编译...

系统环境:Solaris 9
Makefile如下: 
... 
CC=g++ 
CFLASS=-Wall -o -g -fpic 
BaseChar.o: BaseChar.cpp BaseChar.h jpeglib.h 
$(CC) $(CFLASS) -c BaseChar.cpp -o BaseChar.o 
... 
以上编译通过。

g++ BaseChar.o libjpeg.a -shared -o libBMP.so //编译时出错,如下

文本重定位持续                                  引用的
    针对符号                位移        在文件中
                            0x43        libjpeg.a(jerror.o)
error_exit                          0x16c       libjpeg.a(jerror.o)
emit_message                        0x173       libjpeg.a(jerror.o)
output_message                      0x17a       libjpeg.a(jerror.o)
format_message                      0x181       libjpeg.a(jerror.o)
reset_error_mgr                     0x188       libjpeg.a(jerror.o)
...
...
exit                                0x20        libjpeg.a(jerror.o)
jpeg_std_message_table              0x1a4       libjpeg.a(jerror.o)
jpeg_destroy                        0x14        libjpeg.a(jerror.o)
__iob                               0x48        libjpeg.a(jerror.o)
fprintf                             0x4d        libjpeg.a(jerror.o)
sprintf                             0xfd        libjpeg.a(jerror.o)
sprintf                             0x143       libjpeg.a(jerror.o)
ld: 致命的: 重定位仍旧与可分配但不可写的节相反
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `libBMP'

什么缘故???

本应当g++ BaseChar.o -L. -ljpeg -shared -o libBMP.so 的,但Soraris9 不支持‘-L.’,也不识别-ljpeg,所以只能
g++ BaseChar.o libjpeg.a -shared -o libBMP.so 了。

|
编译libjpeg时加上-fPIC选项试试。

    
 
 

您可能感兴趣的文章:

  • 静态库,动态库,静态链接和动态链接
  • 静态库动态库同时存在时,如何指定使用静态库
  • linux动态链接库里全局变量和静态变量会导致动态库不可重入吗?
  • Linux 动态库,静态库的一些疑惑
  • 动态编译与静态编译驱动程式疑问?
  • 如何将动态可执行文件打包为静态
  • 请问unix/linux下动态连接库和静态连接库有什么区别?
  • 用静态库还是动态库?
  • driver的静态加载和动态加载占用内存问题
  • 送分.......linux下动态库和静态库的后缀名是什么呢?
  • gcc 做一个动态库 要包含一个静态库
  • .a文件的动态链接和静态链接问题
  • linux中的动态库和静态库的问题
  • linux中,动态库中的函数如何调用静态库中的函数
  • unix 下如何调用动态链接库和静态库结尾的文件(c语言)
  • JSP下动态INCLUDE与静态INCLUDE的区别分析
  • 送分.......关于动态库静态库.. 来接分吧..
  • 请问做动态库和静态库在使用上有什么区别?
  • 动态库链接 变为 静态库链接问题
  • JSP中动态include与静态include的区别介绍
  • Linux动态库编译问题
  • 在linux下(c++),如何动态调用 动态库(.so)? 为什么我编译报错:undefined reference to "dlopen"
  • 如何在程序中动态的加载并且调用另一个编译好的函数?
  • 问一个编译动态链接库的问题
  • C++动态编译工具 ccbuild
  • 编译时链接我的动态库出现错误:undefined reference to ‘XXXXXX’
  • arm-linux-gcc 编译时加载<math.h>动态链接库的问题
  • unix 如何使用xlC_r把程序编译成动态链接库
  • AIX下gcc编译器怎么使用动态连接库
  • vc编写dll动态连接库(编译过的)能在unix上开发使用吗?
  • 高手接分!UNIX 64位动态链接库编译问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 动态库调用动态库
  • 如何调用动态
  • linux下怎么设置调用的动态库的路径
  • 如何使用JAVA调用利用用VC写的已有的动态库
  • 请教:linux的驱动程序如何调用动态连接库?
  • 怎样动态调用.so文件中的类方法
  • 链接问题,调用动态库中函数时出错
  • 如何在AIX系统下编写动态库的调用程序
  • 请教在linux中如何动态的增加一个系统调用(模块中)
  • 动态链接库调用问题.
  • 怎样用java调用DLL动态连接库?
  • linux如何将rsync源码封装成动态库留出接口供外部函数调用?
  • linux下动态库调用问题
  • so动态库相互调用问题?
  • 隐式调用动态链接库的问题
  • 一个关于在java中调用动态链接库的问题,高手指点!
  • 怎样调用动态库?谢谢!
  • Java中如何通过方法名动态调用方法?
  • 动态库被多个程度调用时是怎么运行的
  • 动态链接库的_init()没被调用
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 可执行程序加载动态库 和 动态库加载动态库 的动态库初始化的问题
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • linux能否成为动态域名解析客户端的动态域名解析服务器?
  • 关于动态菜单项,注意,不是动态菜单(一定给分)
  • Linux下,怎么确定动态库的绝对位置(动态库里面确定)?
  • 为什么动态生成的图片,JSP不能动态的获得
  • 请问:能不能动态的运行时生成对象(动态定义对象), 要涉及到哪些技术, 反射,序列化...??
  • 动态加载动态库问题--在线等
  • C#实现动态显示及动态移除图片方法
  • 程序发布的问题(动态连接库的问题)


  • 站内导航:


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

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

    浙ICP备11055608号-3