shihyu 发表于 2016-05-19 15:07

CC = gcc
SOFLAGS = -shared -fPIC
LDFLAGS = -lm
CFLAGS = -Wall -pedantic -ggdb3 -O0 -std=c99 -lpthread -shared -fPIC

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

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

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

.PHONY: clean
clean:
        rm -f main *.so *.o
還是會 crash

爻易 发表于 2016-05-19 21:54

晕死,难道是描述不够明确:dizzy:

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

爻易 发表于 2016-05-19 22:33

http://bbs.chinaunix.net/thread-4235547-1-1.html

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

爻易 发表于 2016-05-19 22:38

罚把以前的makefile抄10遍,再抄错拖出去打死;P

爻易 发表于 2016-05-19 22:44

爻易 发表于 2016-05-19 22:38 static/image/common/back.gif
罚把以前的makefile抄10遍,再抄错拖出去打死

我为什么要说再呢:emn30:

爻易 发表于 2016-05-19 23:06

VIP_fuck 发表于 2016-05-19 08:25 static/image/common/back.gif
这个问题。。。撸主,这个跟 makefile 有关系的可能不大。除非你引用外部库的版本变了。。。。当然,库比较傻逼的时候会有这种问题。


所以,上代码。


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

#包含 <豆你玩.头>

空 豆你玩(空)
{
输出(:mrgreen: :em17: :lol: :em02: );
}

shihyu 发表于 2016-05-19 23:12

本帖最后由 shihyu 于 2016-05-19 23:12 编辑

CC = gcc
SOFLAGS = -shared -fPIC
LDFLAGS = -lm
CFLAGS = -Wall -pedantic -ggdb3 -O0 -std=c99 -lpthread

all: add.so sub.so main

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

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

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

.PHONY: clean
clean:
        rm -f main *.so *.o
可以了感谢^^
页: 1 [2]
查看完整版本: 动态库 Segmentation fault