gpt4 book ai didi

使用 gcc -c *.c 将源代码编译成目标文件

转载 作者:可可西里 更新时间:2023-11-01 09:47:16 25 4
gpt4 key购买 nike

我的操作系统是Windows 10。这次我使用命令提示符进行编译。

根据我正在阅读的书,要编译所有源文件并使其成为目标文件,(在当前目录中)通过键入以下命令来完成:

gcc -c *.c

它说操作系统将用所有 C 文件名替换 *.c

但为什么会出现此错误?

gcc: error: *.c: Invalid argument
gcc: fatal error: no input files
compilation terminated.

我在正确的目录中。当我用它们各自的名字编译我的源文件时,它工作正常。但是'*.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;
}

Unix 上的示例输出:

$ ./a.out /*
/bin
/boot
/dev
...
/usr
/var
$ ./a.out /\*
/*
$

Windows 上的示例输出:

C:\Windows\system32>a.exe C:\*
C:\*
C:\Windows\system32>

如果你想让其他东西为你的程序扩展通配符,使用MinGW (MSYS) 或 Windows Subsystem for Linux (Win 10 1607 及更高版本)。

关于使用 gcc -c *.c 将源代码编译成目标文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45660948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com