在ubuntu中使用C语言学习编程的新手例如,使用hello.c从一些视频教程中,我看到老师可以使用“ make hello”来编译hello.c,而无需在当前目录中设置Makefile,并且命令类似于
bash$ make hello
gcc -g -Wall hello.c -o hello
我尝试在自己的ubuntu 14.04上使用make,我安装了build-essential并尝试了相同的hello.c
bash$ make hello
cc hello.c -o hello
就像上面一样我如何进行更改以获取-g,-Wall或任何其他标志?
其工作方式make
是通过已知配方从源头产生目标。
当您编写自己的Makefile时,可以为其提供配方,但是,make
可以使用内部配方。您可以按列出它们make -p
。
食谱之一讲述了make
如何从<something> .c中产生<something>。运行时make hello
,make
检查如何产生hello,发现有一个hello.c文件,并且知道如何从hello.c产生hello-使用该内部规则。
现在规则看起来像这样。
%: %.c
# recipe to execute (built-in):
$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
重要的部分$(LINK.c)
看起来像这样
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
您现在不需要了解语法,重要的是,您make hello
将被转换成(省略了一些未使用的变量)
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) hello.c -o hello
现在可以通过以下方式设置CC,CFLAGS,CPPFLAGS和LDFLAGSmake
(在您的情况下,CC设置为“ cc”,其余的未设置),但是您可以使用环境变量覆盖它。你想要的是
CC=gcc
CFLAGS="-g -Wall"
为此,只需运行一个命令:
CC=gcc CFLAGS="-g -Wall" make hello
为此,请运行一个会话(直到关闭终端)
export CC=gcc
export CFLAGS="-g -Wall"
然后随心所欲make hello
或make whatever
随心所欲。
要永久执行此操作,请在.profile
文件中设置这些变量(打开~/.profile
(如果不存在则创建),然后添加
export CC=gcc
export CFLAGS="-g -Wall"
做到这一点。或者只是跑
echo 'export CC=gcc' >> ~/.profile
echo 'export CFLAGS="-g -Wall"' >> ~/.profile
在这两种情况下,您都需要source ~/.profile
或启动一个新的终端。从此以后它将快乐地工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句