【问题标题】:How to include header file in .c from other directories如何在 .c 中包含来自其他目录的头文件
【发布时间】:2016-08-15 16:57:45
【问题描述】:

我正在这个目录结构中工作

root: Code
|--src
    |--client
        |--client.c
    |--server
        |--server.c
    |--lib
        |--utility.c
|--include
    |--prototype.h
    |--utility_lib.h

client.c 文件中,我必须包含utility_lib.h 文件。

#include "-I../../include/utility_lib.h" 不行,可能路径不对。

谁能帮帮我?

【问题讨论】:

    标签: c compilation c-preprocessor


    【解决方案1】:

    只是

    #include "../../include/utility_lib.h"
    

    -I 标志你应该只添加到编译器设置中

    【讨论】:

      【解决方案2】:

      您可以直接在代码中包含头文件:

      // file client.c
      #include "../../include/utility_lib.h"
      

      或者你可以告诉你的编译器在哪里可以找到头文件:

      // file client.c
      #include <utility_lib.h>
      

      如果当前目录为client则编译命令:

      gcc -c client.c -o client.o -I../../include
      

      如果当前目录为src则编译命令:

      gcc -c src/client.c -o client.o -I../include
      

      【讨论】:

        【解决方案3】:

        更常用的方法是更改​​您的构建过程(例如,在您的 Makefile 中编辑 CFLAGS)以便通过

        -I $TOPDIR/include/
        

        到你的编译器。在Makefile 中,您可能会定义一些make 变量TOPDIR= 并将其用作$(TOPDIR)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-03
          • 2017-08-21
          • 1970-01-01
          • 2012-02-08
          • 2020-03-21
          相关资源
          最近更新 更多