c - Windows命令行c文件编译错误

标签 c

我使用 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/

相关文章:

c - 使用 O_TRUNC 重写文件

c - 填充 2D 字符数组导致 C 崩溃

c - ANSI C 和 K&R C 之间的主要区别是什么?

c - C 中的 6 位二进制计数器(编译,但 Windows 遇到错误)

c - 在 C 中处理具有长度的字符串

c++ - C++ 中字符数组与整数数组的指针

c - Linux套接字程序中的recvfrom api

无法用 C 中的文本文件中的数据填充数组

c - POSIX 系统上 regex.h header 的不同实现背后的算法类型

c - Makefile 更改 -lpthread 参数位置?