2017-08-27 9 views
-2

私はC++で神経回路網を作成しようとしています。書きたいと思っているヘッダーファイルの1つに、先頭にインクルードの問題があります。 Eclipseのファイルの概要の中のインクルードをダブルクリックすると、書いてある部分に移動するので、Eclipseはそこにあることを知っていますが、コンパイラはそれがそうではないと訴え続けます。C++には面白いEclipseの演技が含まれています

src 
->Layers 
    -->Layer.h 
->Neurons 
    -->Neuron.h 
->main.cpp 

Layers.hファイルのコードは以下の通りです:

#ifndef LAYERS_LAYER_H_ 
#define LAYERS_LAYER_H_ 
#include <vector> 
#include "../src/Neurons/Neuron.h" 

class Layer{ 
public: 
    std::vector<Neuron> layer; 
    Layer(Neuron a, int n){ 
     layer = std::vector<Neuron>(n); 
     for(int i = 0;i<n;i++){ 
      layer[i] = a; 
     } 
    } 
    virtual std::vector<double> fire(std::vector<double>); 
    virtual std::vector<double> fire(); 
    virtual std::vector<double> derivative(std::vector<double>); 
    virtual std::vector<double> derivative(); 
    virtual ~Layer(){} 
}; 



#endif /* LAYERS_LAYER_H_ */ 

と#とラインディレクトリは次のようになります(私は問題とは何の関係もなかったすべてのファイルを切り取ります)などが「../src/Neurons/Neuron.hは、」私はmain.cppににファイルを含めることができました

In file included from ..\src\Layers\Layer.cpp:7:0: 
..\src\Layers\Layer.h:11:10: fatal error: ../src/Neurons/Neuron.h: No such file or directory 
#include "../src/Neurons/Neuron.h" 
      ^~~~~~~~~~~~~~~~~~~~~~~~~ 
compilation terminated. 

エラーになりますし、それが正常に動作します。

+0

それは '../../のsrc /ニューロン/ Neurons.h'や' ../ニューロン/ Neuron.h'べきか?あなたが1つのディレクトリにいるように見える –

答えて

1

#include "../src/Neurons/Neuron.h"コンパイラに、現在のファイルの場所を基準にしたディレクトリの階層構造を1つ上げるように指示します。したがって../は既にsrcの内部にあり、/srcを追加する必要はありません。だからあなた含めるが、次のようになります。

#include "../Neurons/Neuron.h" 
+0

それは働いて、私は "../"がディレクトリを移動したことに気付かなかった。私はそれがルートディレクトリかそのようなものだと仮定しました。ありがとう。私はあなたの答えをすぐに受け入れてくれます。 – BadProgrammer99

関連する問題