1

銀河シミュレーションを視覚化するために使用されるプログラム (ほろ酔い) をインストールする必要があります (私の物理学の教授が私に勧めてくれて、彼もそれを使用しています)。

インストールしようとしましたが、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

行を変更する

return;

return 0;

または、この問題を解決するためのそのようなもの。必要に応じて、オプションを渡します

-Wno-return-type

コンパイラ ( clangOS X のデフォルト コンパイラを使用している場合) に追加して、これをエラーにならないようにします。

于 2015-12-30T14:42:33.340 に答える