我使用 gcc 编译器和 Clion IDE 处理 C 代码
所以,我有一个src
.c
的文件夹代码和include
.h
的文件夹包含一堆#define的文件
我包括了一些.h
我的 main.c 程序中的文件
当我在 Clion 项目中运行它时,一切正常
但是当我尝试使用命令行运行时(因为我需要命令参数),它说
Fatal Error: MyFunction.h, no such file or directory
MyFunction.h
是我的文件,不是默认库文件
我在命令行中输入的是$gcc C:\Users\Admin\CLionProjects\project\src\main.c
我得到的是"C:\Users\Admin\CLionProjects\project\src\main.c 10: Fatal Error: MyFunction.h No such file or directory.
然后我尝试更改 #include <MyFunction.h>
至#include "MyFunction.h"
,希望它能解决问题,但没有。
然后我做了一个测试,我调用了另一个.c
的函数文件在同一个 src
文件夹,并使用命令行运行main.c
,但它告诉我该函数甚至还没有定义。
cmd可以识别所有默认的库文件,如stdio.h
,但没有一个是我创建的。知道如何解决这个问题吗?我知道这一定是某种路径错误
最佳答案
你必须告诉gcc
预处理器在哪里找到您想要包含的文件。
您有两种标题:
- 系统 header :包含在
#include <header>
中。 - 本地 header :包含在
#include "header"
中。
预处理器在 header 搜索路径中搜索以查找系统 header 。 预处理器在当前目录中搜索,然后在 header 路径中搜索本地 header 。
您可以使用 -I
在 header 搜索路径中添加文件夹gcc
中的选项调用。
因此,就您的情况而言,您可以使用以下命令进行编译:
$gcc -I C:\Users\Admin\CLionProjects\project\include C:\Users\Admin\CLionProjects\project\src\main.c
或
$cd C:\Users\Admin\CLionProjects\project\src
$gcc -I ..\include main.c
关于c - Windows命令行c文件编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52305502/