Bic*_*ano 3 c windows compilation wildcard object-files
我的操作系统是Windows 10.我这次使用命令提示符进行编译.
根据我正在阅读的书,要编译所有源文件并使其成为目标文件,(在当前目录中)通过键入以下命令来完成:
gcc -c *.c
Run Code Online (Sandbox Code Playgroud)
它说操作系统将用所有C文件名替换*.c
但为什么我会收到此错误?
gcc: error: *.c: Invalid argument
gcc: fatal error: no input files
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
我在正确的目录中.当我使用各自的名称编译我的源文件时,它正常工作.但'*.c'无效.
使用'*.o'链接目标文件时出现同样的错误
该命令不适用于Windows操作系统吗?如果没有,什么是Windows?
新手在这里.
在Unix系统和环境(如MSYS或Cygwin)上,通配符由shell(依赖)扩展,但在Windows CMD中,通配符由接收的程序扩展和解释.这听起来很奇怪,但是cmd.exe不支持通配符扩展(作为解释器),但是它的一些内置命令就像COPY.
使用简单的程序进行验证.
#include <stdio.h>
int main(int argc, char *argv[]){
int i;
for (i = 1; i < argc; i ++)
printf("%s\n", argv[i]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Unix上的示例输出:
$ ./a.out /*
/bin
/boot
/dev
...
/usr
/var
$ ./a.out /\*
/*
$
Run Code Online (Sandbox Code Playgroud)
Windows上的示例输出:
C:\Windows\system32>a.exe C:\*
C:\*
C:\Windows\system32>
Run Code Online (Sandbox Code Playgroud)
如果您想让其他东西扩展您的程序的通配符,请使用MinGW(MSYS)或Linux子系统Linux(Win 10 1607及更高版本).
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |