免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: changyongID
打印 上一主题 下一主题

[C] 程序链接碰到的奇怪问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-04-22 14:53 |只看该作者
其实, 我还是不理解, 为什么同样的源代码编译出来的静动态库,使用时一个有问题,一个没有问题呢???

盼望以后写c时能遇到这样类似的问题,到时我就死跟不放,一定查个水落石出.

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
12 [报告]
发表于 2010-04-22 16:30 |只看该作者
用gdb试试看?

论坛徽章:
0
13 [报告]
发表于 2010-04-22 16:40 |只看该作者
用gprof可以看call gragh

论坛徽章:
0
14 [报告]
发表于 2010-04-22 21:06 |只看该作者
没core文件吗?

论坛徽章:
0
15 [报告]
发表于 2010-04-22 21:31 |只看该作者
回复 14# zhoubug


    你好,请问你说的是什么core文件?

论坛徽章:
0
16 [报告]
发表于 2010-04-22 22:15 |只看该作者
ulimit -c unlimited 打开下 gdb看下core 调用栈

论坛徽章:
0
17 [报告]
发表于 2010-04-22 22:36 |只看该作者
我不是问生成so的命令,而是问生成 $(OBJECTS) 的命令,例如:

.cpp.o :
    $(CC) -DPIC -fPIC -c -o $@ $<

之类的命令,这里有 -fPIC 吗?

试试大写的PIC而不是小写的pic,另外加一下 -g 参数
使用gdb运行,看是否还出问题,如果出问题的话,执行一下 backtrace 命令,把结果贴出来

论坛徽章:
0
18 [报告]
发表于 2010-04-23 10:27 |只看该作者
本帖最后由 changyongID 于 2010-04-23 10:33 编辑

回复 17# drangon

编译命令如下编译的这些选项写在了makefile里, 所以所有cpp文件的编译都是加的这些选项)

    g++ -fno-exceptions -pipe -w -fsigned-char -fno-exceptions  -fPIC -s -O2 -fno-strict-aliasing -DNDEBUG -c filename.cpp

晕死,其中竟还有 -O2 优化 , 莫非这个会有问题? (另 -s 这个小写的 s 选项是什么意思?, 只查到大写的 S  选项是编译成汇编文件, 但不进行汇编)

-pipe 临时文件使用管道通信
-w 禁止所有警告信息
-fsigned-char  char为有符号的, 如signed char

原来 fpic 和 fPIC 是有区别的?查到的如下:
-fpic
      如 果 支 持 这 种 目 标 机 , 编 译 器 就 生 成 位 置 无 关 目 标 码 . 适 用 于 共 享 库 (shared
      library).
-fPIC
      如果支持这种目标机,编译器就输出位置无关目标码.适用于动态连接(dynamic
      linking),即使分支需要大范围 转移

论坛徽章:
0
19 [报告]
发表于 2010-04-23 13:34 |只看该作者
试了一下,去掉-s -O2等, 然后链接时也使用-fPIC, 仍不行.

论坛徽章:
0
20 [报告]
发表于 2010-04-23 13:40 |只看该作者
代码的问题,不是编译选项的问题,core一般是访问不该访问的内存了,C++的内存管理那么繁琐,stack上还有obj,慢慢找吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP