来自终端输入和来自 Makefile 的命令过程有什么区别?
what the difference of command process from terminal input and from Makefile?
我是新手,使用 MinGW64 和 msys2。
我写了一个简单的程序,只是输出"hello,world",但是它链接了一个dll用于测试。
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
i 运行 在终端中的命令如下:
$ gcc -g -Wall -I/usr/local/include -L/usr/local/bin -llua53 --shared -o test.dll main.c
效果很好。
但我写了一个 Makefile 使用同样的命令是这样的:
all: main.c
gcc -g -Wall -I/usr/local/include -L/usr/local/bin -llua53 --shared -o test.dll main.c
输出错误:
$ mingw32-make.exe
gcc -g -Wall -I/usr/local/include -L/usr/local/bin -llua53 --shared -o test.dll main.c
E:/mingw/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -llua53
这个问题让我很困惑,终端输入的命令过程和Makefile的命令过程有什么区别?
mingw32-make.exe
用于 windows 命令 shell 并且不理解 POSIX 路径,您需要使用 make.exe
.
我是新手,使用 MinGW64 和 msys2。
我写了一个简单的程序,只是输出"hello,world",但是它链接了一个dll用于测试。
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
i 运行 在终端中的命令如下:
$ gcc -g -Wall -I/usr/local/include -L/usr/local/bin -llua53 --shared -o test.dll main.c
效果很好。
但我写了一个 Makefile 使用同样的命令是这样的:
all: main.c
gcc -g -Wall -I/usr/local/include -L/usr/local/bin -llua53 --shared -o test.dll main.c
输出错误:
$ mingw32-make.exe
gcc -g -Wall -I/usr/local/include -L/usr/local/bin -llua53 --shared -o test.dll main.c
E:/mingw/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -llua53
这个问题让我很困惑,终端输入的命令过程和Makefile的命令过程有什么区别?
mingw32-make.exe
用于 windows 命令 shell 并且不理解 POSIX 路径,您需要使用 make.exe
.