Linux中makefile问题

CC=/ralink/RT288x_SDK/toolchain/buildroot-gcc342/bin/mipsel-linux-gccOBJS=program.cCD... CC=/ralink/RT288x_SDK/toolchain/buildroot-gcc342/bin/mipsel-linux-gcc
OBJS = program.c
CDREXE = program.so

#stdlibc++ known issue:
#If your program needs libstdc++, please turn off code optimization
CFLAGS +=-I/ralink/RT288x_SDK/source/lib/libsqlite3/
CFLAGS +=-fPIC -shared
LDFLAGS +=-L/ralink/RT288x_SDK/source/lib/libsqlite3 -lsqlite3
LDFLAGS +=-L/ralink/RT288x_SDK/source/romfs/lib -lpthread -ldl

program.so: $(OBJS)
$(CC) $^ -o $@

romfs:
$(ROMFSINST) /bin/$(CDREXE)

.PHONT:clean
clean:
rm -f $(CDREXE) *.elf *.gdb *.o *.so

执行make后信息/ralink/RT288x_SDK/toolchain/buildroot-gcc342/bin/mipsel-linux-gcc program.c -o program.so

为什么CFLAGS和LDFLAGS都没起作用呢?
展开
 我来答
栩箭
2013-08-07 · TA获得超过5310个赞
知道大有可为答主
回答量:3036
采纳率:0%
帮助的人:1648万
展开全部
$(CC) $^ -o $@

修改为
$(CC) $(CFLAGS) $^ -o $@

这样就能生效了。LDFLAGS也类似,需要自己写上
追问
romfs:
$(ROMFSINST) /bin/$(CDREXE)
是什么意思呢?romfs是伪目标吧,做什么的呢?
x901205
2013-08-07 · TA获得超过137个赞
知道答主
回答量:139
采纳率:0%
帮助的人:79万
展开全部
觉得你的makefile没写对呢,就你说的CFLAGS和LDFLAGS而言,有定义,但是都没有引用,怎么可能有作用
追问
romfs:
$(ROMFSINST) /bin/$(CDREXE)
是什么意思呢?romfs是伪目标吧,做什么的呢?
追答
不知道ROMFSINST的定义,我也不知道它是干嘛的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-07
展开全部
program.so: $(OBJS)
        $(CC) $CFLAGS $LDFLAGS $^ -o $@

修改成上面内容试试。

追问
romfs:
$(ROMFSINST) /bin/$(CDREXE)
是什么意思呢?romfs是伪目标吧,做什么的呢?
追答
uClinux一般都会建立一个ROMFS文件系统,而把其它文件向该文件系统添加一般都通过$(ROMFSINST)命令,而ROMFSINST变量值就是romfs-inst.sh(这文件一般在和linux-2.6.x同级tools目录下),执行$(ROMFSINST)就是执行romfs-inst.sh
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式