C++ 致命错误:';通用.h';在mac osx 10.10.5下找不到文件

C++ 致命错误:';通用.h';在mac osx 10.10.5下找不到文件,c++,c,macos,C++,C,Macos,我遵循《操作系统:三个简单的部分》这本书 如何修复错误?谢谢。您对主要功能的声明应遵循common.h中的声明: #include <stdio.h> #include "common.h" // not this: //int main(int argc, char *argv[]) { // but: int main(int argc, char *argv[], char *argv2[]) { return 0; } common.h不是要添加的标准标头。如果您

我遵循《操作系统:三个简单的部分》这本书


如何修复错误?谢谢。

您对主要功能的声明应遵循
common.h中的声明:

#include <stdio.h>
#include "common.h"

// not this:
//int main(int argc, char *argv[]) {
// but:
int main(int argc, char *argv[], char *argv2[]) {
    return 0;
}

common.h不是要添加的标准标头。如果您想编译并运行这段代码,无论是查找包含Spin()的common.h,还是在没有Spin()和common的情况下编译并运行代码。省略Spin()和common.h不会影响对本书中讨论内容的理解。

此问题的
“common.h”
标题作为tgz束链接在第1章下一节课程的目录中:


将其放在源文件旁边,然后再次尝试编译。

以下是您要查找的内容。所有其他答案都不明白您是在操作系统手册上工作的。请参考网站上提供的链接

#ifndef(通用)__
#定义公共__
#包括
#包括
#包括
双GetTime(){
结构时间值t;
int rc=gettimeofday(&t,NULL);
断言(rc==0);
返回(双)t.tv_sec+(双)t.tv_usec/1e6;
}
空旋(内旋){
double t=GetTime();
while((GetTime()-t)<(double)howlong)
;//在循环中什么也不做
}
void Pthread_create(Pthread_t*t,const Pthread_attr_t*attr,
void*(*开始_例程)(void*),void*arg){
int rc=pthread_create(t,attr,start_例程,arg);
断言(rc==0);
}
void Pthread\u join(Pthread\u t thread,void**value\u ptr){
int rc=pthread\u join(线程,值\u ptr);
断言(rc==0);
}
void Pthread_mutex_lock(Pthread_mutex_t*mutex){
int rc=pthread\u mutex\u lock(互斥锁);
断言(rc==0);
}
void Pthread_mutex_unlock(Pthread_mutex_t*mutex){
int rc=pthread\u mutex\u unlock(mutex);
断言(rc==0);
}
void Pthread_mutex_init(Pthread_mutex_t*mutex,Pthread_mutextatr_t*attr){
int rc=pthread\u mutex\u init(mutex,attr);
断言(rc==0);
}
#endif/\uu公共\u h__

@shami谢谢,我明白了。我添加了答案:)你知道如何找到common.h吗?见下文-我找到了你丢失的
common.h
文件。为什么不添加链接
http://pages.cs.wisc.edu/~remzi/OSTEP/Code/Code.intro.tgz@色盲我在这门课程中的经验表明,我链接的目录结构下面的目录结构被修改了很多一点我希望父级能够找到该文件,即使目录结构发生了变化。
cpu.c:8:1: error: conflicting types for 'main'
main(int argc, char *argv[])
^
./common.h:86:13: note: previous declaration is here
extern int              main(int, char **, char **);
                        ^
cpu.c:18:5: warning: implicit declaration of function 'Spin' is invalid in C99 [-Wimplicit-function-declaration]
    Spin(1);
    ^
1 warning and 1 error generated.
#include <stdio.h>
#include "common.h"

// not this:
//int main(int argc, char *argv[]) {
// but:
int main(int argc, char *argv[], char *argv2[]) {
    return 0;
}
gcc cpu.c common.h -Wall -o cpu