Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows命令行c文件编译错误_C - Fatal编程技术网

Windows命令行c文件编译错误

Windows命令行c文件编译错误,c,C,我使用gcc编译器和Clion IDE处理C代码 因此,我有一个src文件夹,用于.c代码和包含.h文件的文件夹,其中包含一组#define 我在main.c程序中包含了一些.h文件 当我在Clion项目中运行它时,一切正常 但当我尝试使用命令行运行时(因为我需要命令参数),它说 致命错误:MyFunction.h,没有这样的文件或目录MyFunction.h是我的文件,不是默认的库文件 我在命令行中键入的是$gcc:\Users\Admin\CLionProjects\project\src\

我使用gcc编译器和Clion IDE处理C代码

因此,我有一个
src
文件夹,用于
.c
代码和
包含
.h
文件的
文件夹,其中包含一组#define

我在main.c程序中包含了一些
.h
文件

当我在Clion项目中运行它时,一切正常

但当我尝试使用命令行运行时(因为我需要命令参数),它说

致命错误:MyFunction.h,没有这样的文件或目录
MyFunction.h
是我的文件,不是默认的库文件

我在命令行中键入的是
$gcc:\Users\Admin\CLionProjects\project\src\main.C

我得到的是
“C:\Users\Admin\CLionProjects\project\src\main.c10:致命错误:MyFunction.h没有这样的文件或目录。

然后我尝试将
#include
更改为
#include“MyFunction.h”
,希望它能解决问题,但没有

然后我做了一个测试,我调用了同一个
src
文件夹中另一个
.c
文件的函数,并使用命令行运行
main.c
,但它告诉我该函数甚至没有定义


cmd可以识别所有默认库文件,如
stdio.h
,但没有一个是我创建的。知道如何解决这个问题吗?我知道这一定是某种路径错误,你必须告诉
gcc
预处理器在哪里找到你想要包含的文件

您有两种类型的标题:

  • 系统标题:包含在
    中#包含在
  • 本地标题:包含在
    中#包含“标题”
预处理器在标题搜索路径中搜索以查找系统标题。 预处理器在当前目录中搜索,然后在头路径中搜索本地头

您可以使用
gcc
调用中的
-I
选项在标题搜索路径中添加文件夹

因此,在您的情况下,可以使用以下命令进行编译:

$gcc -I C:\Users\Admin\CLionProjects\project\include C:\Users\Admin\CLionProjects\project\src\main.c


您能告诉我们如何在命令行中编译吗?命令是什么?是您编写的文件还是系统库的一部分?它与您的c文件在同一目录中吗?我曾尝试将它与main.c放在同一文件夹中,但不知何故,正如我提到的,cmd仍然无法识别它。cmd甚至无法识别该函数从同一src文件夹中的另一个c文件。在IDE中工作时,我没有任何错误或警告,IDE可以识别这些文件,但cmd不能。您是从不同于源文件所在的工作目录编译的吗?使用完全绝对路径有点像这样。
$cd C:\Users\Admin\CLionProjects\project\src
$gcc -I ..\include main.c