Makefile中未找到命令错误

时间:2016-08-03 22:05:55

标签: c linux gcc makefile

我正在尝试编写一个Makefile。这就是我写的。

insert into people
select 
name,
age,
all_fields_as_json() as json
from customers_2012

运行时抛出错误

CC='/buildtools/toolchain/wr-x86/3.0FCScg/bin/i586-wrs-linux-gnu-gcc --sysroot=/buildtools/toolchain/wr-x86/3.0FCScg/sysroot'
IDIR =../../../include
CFLAGS=-I$(IDIR)

LDIR =../../../../../../../../.debug/lib.out/public/
LIBS= -lmylib1 -lmylib2 -lmylib3

myexec: my_code.c
    $(CC) $(CFLAGS) -o myexec my_code.c

但是,当我在终端中手动运行编译命令时,它会起作用。

make: /buildtools/toolchain/wr-x86/3.0FCScg/bin/i586-wrs-linux-gnu-gcc --sysroot=/buildtools/toolchain/wr-x86/3.0FCScg/sysroot: Command not found

1 个答案:

答案 0 :(得分:3)

Makefile中的定义更改为:

CC=/buildtools/toolchain/wr-x86/3.0FCScg/bin/i586-wrs-linux-gnu-gcc --sysroot=/buildtools/toolchain/wr-x86/3.0FCScg/sysroot

使用引号,make使用整个定义作为要查找的可执行文件的名称。

CC之外定义Makefile时它起作用的原因是对于shell和Makefile,处理引号的规则是不同的。

更常见的约定是对所有编译标志使用CFLAGS。事实上,我强烈建议您将Wall -W添加到CFLAGS定义中。

关于库,您应该在$LIBScc命令行上的源文件和目标文件之后展开ld