当我运行相同的gcc命令指定在我的make all规则,我没有错误。但是当我跑去做所有的事时,我会犯一大堆错误。为什么会发生这种情况?
Makefile:
all: program.c
gcc -I$HOME/ffmpeg/include program.c -L$HOME/ffmpeg/lib -lswscale -lavdevice -lavfilter -lswscale -lswresample -lavformat -lavcodec -lavutil -lz -lm -lpthread -o program执行gcc的命令:
(No error)跑步使一切:
gcc -IOME/ffmpeg/include program.c -LOME/ffmpeg/lib -lswscale -lavdevice -lavfilter -lswscale -lswresample -lavformat -lavcodec -lavutil -lz -lm -lpthread -o program
program.c:15:32: error: libavcodec/avcodec.h: No such file or directory
program.c:16:32: error: libswscale/swscale.h: No such file or directory
program.c:17:34: error: libavformat/avformat.h: No such file or directory
program.c:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
program.c:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
program.c:95: error: expected ')' before '*' token
program.c:128: error: expected ')' before '*' token
program.c:201: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
program.c: In function 'main':
program.c:253: error: 'AVFrame' undeclared (first use in this function)
program.c:253: error: (Each undeclared identifier is reported only once
program.c:253: error: for each function it appears in.)
program.c:253: error: 'loaded_image' undeclared (first use in this function)
program.c:255: error: 'img_copy' undeclared (first use in this function)
program.c:255: error: 'AV_PIX_FMT_RGB24' undeclared (first use in this function)
program.c:256: error: 'current_frame' undeclared (first use in this function)
make: *** [all] Error 1发布于 2014-03-19 21:22:05
$HOME在您的make环境中扩展为OME。如果您希望shell扩展它,则需要转义它:
gcc -I$$HOME/ffmpeg/include ...现在发生在您身上的是,make正在将$H扩展为零,然后使用行的其余部分。
发布于 2014-03-19 21:23:27
在命令行(shell)上使用$HOME与在Makefile中使用$HOME有区别。
在Makefile中,必须用括号包围变量名,如下
all: program.c
gcc -I$(HOME)/ffmpeg/include program.c -L$HOME/ffmpeg/lib -lswscale -lavdevice -lavfilter -lswscale -lswresample -lavformat -lavcodec -lavutil -lz -lm -lpthread -o program有关更多信息,请参见变量引用的基础和环境变量。
https://stackoverflow.com/questions/22518314
复制相似问题