1

我需要安装一个用于可视化星系模拟的程序(tipsy)(我的物理学教授向我推荐了它,他也在使用它)。

我尝试安装它,我创建了 makefile,但是当我运行它时,我收到以下代码的错误:

framepoints(job)

char job[MAXCOMM] ;
{
    char command[MAXCOMM] ;
    char file_root[MAXCOMM] ;
    char particle_type[MAXCOMM] ;

    int box ;

    struct gas_particle *gp ;
    struct dark_particle *dp ;
    struct star_particle *sp ;

    double part_pos[2] ;
    int i,j,k ;

    char projection_type[MAXCOMM] ;

    if (sscanf(job,"%s %d %s %s",command,&box,
        particle_type,file_root) == 4) { 

       if(strcmp(particle_type,"star") != 0 &&
          strcmp(particle_type,"gas") != 0 &&
          strcmp(particle_type,"dark") != 0 &&
          strcmp(particle_type,"gasandstar") != 0 &&
          strcmp(particle_type,"darkandstar") != 0 &&
          strcmp(particle_type,"darkandgas") != 0 &&
          strcmp(particle_type,"all") != 0) {

              printf("<sorry, %s is not a particle option, %s>\n",
                     particle_type,title) ;
              return ;
}

错误说:

非 void 函数“framepoints”应该返回一个值

我知道这个没有任何价值的返回来自 C89 之前的版本,但我不知道如何解决它。为了安装它我需要运行的代码很长,所以我不能手动修改它(而且我的教授告诉我它正在工作)。

4

1 回答 1

3

Change the line

return;

to

return 0;

or something like that to fix this problem. Optionally, pass the option

-Wno-return-type

to the compiler (if you are using clang, the default compiler on OS X) to make this not an error.

于 2015-12-30T14:42:33.340 回答