标签: header-files

C++"没有命名类型" - 无法编译源文件

我正在尝试编译我的代码,我无法弄清楚我做错了什么.我相信它可能是我编译的顺序,但我无法弄清楚我的错误.

我的错误代码:

g++ -w -c JokeServer.cpp
In file included from JokeServer.h:4:0,
                 from JokeServer.cpp:52:
AdminServer.h:9:2: error: ‘JokeServer’ does not name a type
make: *** [JokeServer.o] Error 1
Run Code Online (Sandbox Code Playgroud)

谢谢.

JokeServer.h文件:

#ifndef JOKESERVER_H
#define JOKESERVER_H

#include "AdminServer.h"
#include "Subject.h"
#include "Observer.h"
#include "Worker.h"

class JokeServer: public Subject {
private:
    AdminServer* m_admin_server;

public:
     //public functions
};

#endif
Run Code Online (Sandbox Code Playgroud)

AdminServer.h文件:

#ifndef ADMINSERVER_H
#define ADMINSERVER_H

#include "JokeServer.h"
#include "AdminWorker.h"

class AdminServer {
private:
    JokeServer* m_joke_server;

public:
  //public functions        
};

#endif
Run Code Online (Sandbox Code Playgroud)

我的文件:

CPPFLAGS = g++ -w

all: JokeServer …
Run Code Online (Sandbox Code Playgroud)

c++ compilation header-files

-2
推荐指数
1
解决办法
328
查看次数

为什么项目中没有包含必要的头文件?

我经常下载一个 C/C++ 项目并试图编译它只是为了玩它。几乎 100% 的时间makeorconfigure命令失败,我都会沿着依赖树的一部分走下去,遇到一个我不知道如何解决的错误,然后放弃。这可能是一个比头文件更广泛的问题,但似乎该make过程经常需要在特定位置为特定版本的库提供一些 .h 文件,而我的系统上没有这些文件。

如果项目需要这些特定的头文件,作者为什么不将它们复制到项目源代码树中呢?一般来说,要求以这种特定方式设置开发机器是不是很疯狂?如果有人想在两个项目上工作,并且他们需要头文件的冲突版本怎么办?

一个明显的解决方案是在构建过程中包含一个 Dockerfile,但我感兴趣的是这种情况最初是如何出现的,以及是否有一些理由不只包含必要的头文件,这似乎至少是部分解决方案.

c c++ makefile header-files

-2
推荐指数
1
解决办法
87
查看次数

为什么 <bits/stdc++.h> 中有一个“.h”扩展名?

(据我所知)C++ 不接受头文件上的“.h”扩展名(因为它通常不存在于其他包含语句中)所以包含如何<bits/stdc++.h>在 C++ 中工作以及为什么它有“.h”延期?

c++ header-files c++-standard-library

-2
推荐指数
1
解决办法
223
查看次数

编译实现和头文件时出错

我正在尝试添加成员函数的定义,game.h但出现编译器错误,指出 void 函数是先前定义的。game.h和 也输出相同的错误game.cpp。这几乎就像pragma once不起作用?我在 Rider 中遇到错误,也在game.cpp文件中说了同样的事情,但仅限于 void 函数。

\n

游戏.h

\n
#pragma once\n\n#include "SDL2/SDL.h"\n\n\nclass Game{\npublic:\n\n    Game() {}\n    ~Game() {}\n\n    bool init(const char* title, int xPos, int yPos, int width,int height, int flags);\n\n\n\n    void render(){};\n    void update(){};\n    void handleEvents(){};\n    void clean(){};\n\n\n    bool running() {return m_bRunning;}\n\nprivate:\n\n    SDL_Window* m_pWindow;\n    SDL_Renderer* m_pRenderer;\n\n    bool m_bRunning{};\n};\n
Run Code Online (Sandbox Code Playgroud)\n

游戏.cpp

\n
#include <iostream>\n#include "game.h"\n\n\nbool Game::init(const char* title, int xPos, int yPos, int width, int height, int flags){\n\n …
Run Code Online (Sandbox Code Playgroud)

c++ sdl cmake header-files

-2
推荐指数
1
解决办法
304
查看次数

制作一个简单的C头文件

我有一个功能 void MOTOR(int left, int back , int right);

此函数运行另一个函数: void PWMe(int left, int back, int right);

MOTOR 使用这个和一些全局变量.

我想创建一个包含MOTOR但不是的头文件PWMe(请注意,这PWMe是一个函数mainproj.c).

我的第一个问题是,如何创建包含MOTOR,使用PWMe和全局变量 的头文件mainproj.c?

其次,我想MOTOR.c改为装配和MOTOR.lib.

c header-files

-3
推荐指数
1
解决办法
1383
查看次数

如何在C中编写头文件

我是新手,我正在学习C语言.编译以下代码时出现错误.

Constans.h

#define ERROR 0   
#define TRUE 1  
#define FALSE 0  
#define OK 1  
#define INFEASIBLE -1  
#define OVERFLOW -2  
typedef int Status;  
Run Code Online (Sandbox Code Playgroud)

ArrayList.h

#include"Constans.h"  
#define LIST_INIT_SIZE 100  
#define LIST_INCREMENT 20  
typedef struct{  
int *elem;  
int length;  
int listsize;  
}SqList;  
extern Status InitList_sq(Sqlist *l);  
extern Status ListInsert_sq(Sqlist *l,int i,int e);  
extern Status ListDelete_sq(Sqlist *l,int i,int *e);  
extern void MergeList_sq(Sqlist La,Sqlist Lb,Sqlist *Lc);  
extern void ListTraverse(Sqlist l,void(*visit)(void));  
Run Code Online (Sandbox Code Playgroud)

program.c

#include<stdio.h>  
#include "ArrayList.h"  
int main(){  
return 0;  
}  
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的环境:
操作系统:Mac OS X 10.9.1版本 …

c macos header-files

-4
推荐指数
1
解决办法
137
查看次数

C++无法执行二进制文件

我刚用g ++编译了我的源代码:

g++ -o exec Test.hpp
Run Code Online (Sandbox Code Playgroud)

这不会生成可执行文件,即使我使用chmod使其可执行,我也会收到此错误.

bash: ./exec: cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)

这是我的来源:

#include <iostream>

class Test {

  void main() {
    std::cout << "testing" << std::endl;
  }
};
Run Code Online (Sandbox Code Playgroud)

我正在使用Manjaro,它不是虚拟机.有什么建议吗?

c++ linux gcc header-files

-4
推荐指数
1
解决办法
1008
查看次数

应该包含哪些标题,以便在Linux上的c ++代码中保留前缀std ::?

我想在Linux操作系统上使用我的c ++代码中没有std ::的语句(例如cout而不是std :: cout,map <>而不是std :: map <>等).执行它需要什么标题?

c++ header header-files

-4
推荐指数
1
解决办法
141
查看次数

标签 统计

header-files ×8

c++ ×6

c ×3

c++-standard-library ×1

cmake ×1

compilation ×1

gcc ×1

header ×1

linux ×1

macos ×1

makefile ×1

sdl ×1