+ -
当前位置:首页 → 问答吧 → Linxu makefile小问题

Linxu makefile小问题

时间:2011-07-14

来源:互联网

我在编译一个程序时,用到了ICU4C这个库,所以用gcc编译时是这样的:
gcc smssend.cpp -o sms -licuio

然后需要引进一个环境变量:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

这样才能执行./sms

现在需要写一个makefile文件来执行,请问应该怎样写?
我之前没学过makefile文件的书写。

作者: lovingshare   发布时间: 2011-07-14

google下如何写makefile。。。。很详细

作者: feiyinzilgd   发布时间: 2011-07-14

来篇教程:
跟我一起写makefile

作者: thefirstz   发布时间: 2011-07-14

我不懂怎么引进那个环境变量啊。怎么弄?

作者: lovingshare   发布时间: 2011-07-14

在makefile里面export就行

export LD_LIBRARY_PATH=/usr/local/lib:$(LD_LIBRARY_PATH)
tar1:
<tab> gcc smssend.cpp -o sms -licuio
<tab> ./sms



作者: qiyu1988   发布时间: 2011-07-14


占个位置关注一下:
可以这样试试看呢?

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
sms : sms.o
  gcc -o sms.o -licuio
sms.o: smssend.cpp
  gcc -c smssned.cpp -licuio



作者: yearn520   发布时间: 2011-07-14

Makefile: 如果你的icuio是放在/usr/lib /usr/local/lib 就没有必要写那个export ,默认ld会查找这些目录,如果是放在比如 /test/lib/下 可以这样写
sms:smssend.cpp
  gcc smssend.cpp -o sms -licuio
CFLAGS += -L/test/lib  
//你写在LD_FLAGS中也是可以的。

export 我建议你还是写在一个shell中, 比如 sms_exec.sh:
#!/usr/bin/env sh
export LD_LIBRARY_PATH=/test/lib:$(LD_LIBRARY_PATH)
sms

作者: zmlovelx   发布时间: 2011-07-14