我正在尝试编译我的代码,我无法弄清楚我做错了什么.我相信它可能是我编译的顺序,但我无法弄清楚我的错误.
我的错误代码:
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/C++ 项目并试图编译它只是为了玩它。几乎 100% 的时间makeorconfigure命令失败,我都会沿着依赖树的一部分走下去,遇到一个我不知道如何解决的错误,然后放弃。这可能是一个比头文件更广泛的问题,但似乎该make过程经常需要在特定位置为特定版本的库提供一些 .h 文件,而我的系统上没有这些文件。
如果项目需要这些特定的头文件,作者为什么不将它们复制到项目源代码树中呢?一般来说,要求以这种特定方式设置开发机器是不是很疯狂?如果有人想在两个项目上工作,并且他们需要头文件的冲突版本怎么办?
一个明显的解决方案是在构建过程中包含一个 Dockerfile,但我感兴趣的是这种情况最初是如何出现的,以及是否有一些理由不只包含必要的头文件,这似乎至少是部分解决方案.
(据我所知)C++ 不接受头文件上的“.h”扩展名(因为它通常不存在于其他包含语句中)所以包含如何<bits/stdc++.h>在 C++ 中工作以及为什么它有“.h”延期?
我正在尝试添加成员函数的定义,game.h但出现编译器错误,指出 void 函数是先前定义的。game.h和 也输出相同的错误game.cpp。这几乎就像pragma once不起作用?我在 Rider 中遇到错误,也在game.cpp文件中说了同样的事情,但仅限于 void 函数。
游戏.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};\nRun 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) 我有一个功能 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语言.编译以下代码时出现错误.
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版本 …
我刚用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,它不是虚拟机.有什么建议吗?
我想在Linux操作系统上使用我的c ++代码中没有std ::的语句(例如cout而不是std :: cout,map <>而不是std :: map <>等).执行它需要什么标题?