当我尝试使用命令行参数编译 C 源文件时,WSL 出现编译错误

Compilinig error on WSL when I try to compile a C sourcefile with command line parameters

编译以下 C 代码时编译器失败,抛出杂散字符错误:

#include "stdio.h"  
int main(int argc, char *argv[]) {
     int count;  
     printf("The command line has %d arguments:\n", argc - 1);  
     for(count = 1; count < argc; count++) {  
       printf("%d: %s\n", count, argv[count]);  
      }  
      printf("\n");  
 
      return 0;  
}

编译器:gcc 5.4.0 20160609 Ubuntu 16.04.3

错误截图:here

顺便说一句,其他C文件(如"hello world")也可以编译成功。

继续我的评论,“您的代码中没有错误”,因此您收到的任何错误都是由于您的编译字符串 是因为您在 windows 编辑器中编辑了文件,该编辑器在 WSL 中损坏了文件。

要将您的代码(没有警告或错误)编译为默认的 a.out 可执行文件,您可以使用简单的命令行:

gcc -Wall -Wextra yourfilename.c

注意: 始终在编译时启用 警告 ,至少 -Wall -Wextra。您可以添加更多单独的警告选项以及添加 -pedantic 这将启用更多选项。

如果您想添加一些额外的选项、优化级别和编译所依据的 C 标准,以及为您的可执行文件提供自定义名称而不是默认名称 a.out,您可以使用:

gcc -Wall -Wextra -pedantic -std=gnu11 -O3 -o yourexename yourfilename.c

通过编辑您的问题并将您收到的错误的确切文本添加到您的问题中,尝试并报告您收到的确切错误(如果有)。

如果您还有其他问题,请告诉我。