【问题标题】:No such file or Directory error for including header file C没有包含头文件 C 的此类文件或目录错误
【发布时间】:2012-12-10 07:55:13
【问题描述】:

我试图包含一个包含结构的头文件,但是当我尝试编译包含头文件的文件时,我收到No such file or Directory 错误。 .c 和头文件都在同一个目录下。

代码如下:

头文件“MyShared.h”:

#ifndef MYSHARED_H_INCLUDED
    #define MYSHARED_H_INCLUDED
    #define PERM (S_IRWRU | S_IRGRP)
    #define MySharedKey 0343
    #define SIZE 2048

    struct MyShared
    {
        char *buf[SIZE];
        int ReadfromBuf,WriteToBuf,readbytes;
    };
#endif

Mem.c 包含头文件的文件:

#include <sys/shm.h>
#include "MyShared.h"

int main()
{
    MyShared *obj;

    int shmid,i,childpid;

    shmid = shmget(MySharedKey,sizeof(MyShared),NULL);

    .....
}

为什么会出现这个错误?

【问题讨论】:

  • 请在您的问题中添加确切的错误

标签: c unix ubuntu header-files


【解决方案1】:

在 C 中,结构定义不是 typedef。

#include <sys/shm.h>
#include "MyShared.h"


int main()
{
struct MyShared *obj;

int shmid,i,childpid;

shmid=shmget(MySharedKey, sizeof *obj, NULL);

    .....
}

顺便说一句:我认为您不希望共享内存中的 指针 数组:char *buf[SIZE]; 应该是 char buf[SIZE];

【讨论】:

  • @Alfred 现在我很困惑。虽然 wildplasser 的观点很好,但它们与编译器找不到标头完全无关。那有什么问题呢?
  • @DanielFischer:我也是。但我只是发现了通常的嫌疑人之后才开始阅读文本......
猜你喜欢
  • 1970-01-01
  • 2016-04-21
  • 2016-02-26
  • 2018-06-28
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 2010-09-14
相关资源
最近更新 更多