Windows命令行c文件编译错误
我使用gcc编译器和Clion IDE处理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\
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