免费注册 查看新帖 |

Chinaunix

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

[其他] 动态库 Segmentation fault [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
11 [报告]
发表于 2016-05-19 15:07 |只看该作者
  1. CC = gcc
  2. SOFLAGS = -shared -fPIC
  3. LDFLAGS = -lm
  4. CFLAGS = -Wall -pedantic -ggdb3 -O0 -std=c99 -lpthread -shared -fPIC

  5. all: add.so sub.so
  6.         ${CC}  -o main  main.c -L -ladd -L -lsub ${CFLAGS} ${LDFLAGS}

  7. add.so: add.c
  8.         $(CC) ${SOFLAGS} -o $@ $?

  9. sub.so: sub.c
  10.         $(CC) ${SOFLAGS} -o $@ $?

  11. .PHONY: clean
  12. clean:
  13.         rm -f main *.so *.o
复制代码
還是會 crash

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
12 [报告]
发表于 2016-05-19 21:54 |只看该作者
晕死,难道是描述不够明确

是移动,不是复制,CFLAGS不再保留-shared -fPIC选项

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
13 [报告]
发表于 2016-05-19 22:33 |只看该作者
http://bbs.chinaunix.net/thread-4235547-1-1.html

看你以前不是会编译动态库的么,怎么现在技术倒退了。成功的步骤必须保持

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
14 [报告]
发表于 2016-05-19 22:38 |只看该作者
罚把以前的makefile抄10遍,再抄错拖出去打死

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
15 [报告]
发表于 2016-05-19 22:44 |只看该作者
爻易 发表于 2016-05-19 22:38
罚把以前的makefile抄10遍,再抄错拖出去打死


我为什么要说再呢

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
16 [报告]
发表于 2016-05-19 23:06 |只看该作者
VIP_fuck 发表于 2016-05-19 08:25
这个问题。。。撸主,这个跟 makefile 有关系的可能不大。除非你引用外部库的版本变了。。。。当然,库比较傻逼的时候会有这种问题。


所以,上代码。


就这俩接口,谁要是能看出来断错误的原因,那就厉害了。


#包含 <豆你玩.头>

空 豆你玩(空)
{
输出( );
}

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
17 [报告]
发表于 2016-05-19 23:12 |只看该作者
本帖最后由 shihyu 于 2016-05-19 23:12 编辑
  1. CC = gcc
  2. SOFLAGS = -shared -fPIC
  3. LDFLAGS = -lm
  4. CFLAGS = -Wall -pedantic -ggdb3 -O0 -std=c99 -lpthread

  5. all: add.so sub.so main

  6. main:
  7.         ${CC}  -o main  main.c -L./ -ladd -L./ -lsub ${CFLAGS} ${LDFLAGS}

  8. add.so: add.c
  9.         $(CC) ${SOFLAGS} -o libadd.so $?

  10. sub.so: sub.c
  11.         $(CC) ${SOFLAGS} -o libsub.so $?

  12. .PHONY: clean
  13. clean:
  14.         rm -f main *.so *.o
复制代码
可以了感谢^^
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP