0

I am trying to compile and run my c++ code (it is an early version of my code to just check that it would compile). But when I am trying to compile it I get the error:

Undefined symbols for architecture x86_64:
"Net::getResults(std::__1::vector<double, std::__1::allocator<double> > const&) const", referenced from:
      _main in nnet-53e1c0.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I have included my code down here:

// nnet.cpp
//
//
//
#include <vector>
#include <iostream>
using namespace std;

class Neuron {};



//typer reference 
typedef vector<Neuron> Layer;





class Net
{
    public:
        Net(const vector<unsigned> &topology);
        void feedForward(const vector<double> &inputVals) {};
        void backProp(const vector<double> &argetVals) {};
        void getResults( const vector<double> &resultVals) const;


    private:
        vector<Layer> m_layers; // m_layers[layerNum][neuronNum]
};


Net::Net(const vector<unsigned> &topology)
{
    unsigned numLayers = topology.size();
    for(unsigned layerNum =0; layerNum <numLayers; ++layerNum) {
        m_layers.push_back(Layer());

        // We have made a new Layer, now fill it ith neurons, and 
        // add a bias neuron to the layer
        for (unsigned neuronNum = 0; neuronNum <= topology[layerNum]; ++neuronNum) {

            m_layers.back().push_back(Neuron());
            cout <<"Made a new Neuron"<<endl;
        }
    }


}

int main()
{
    // e.g (3, 2, 1)
    vector <unsigned> topology; 
    topology.push_back(3);
    topology.push_back(2);
    topology.push_back(1);
    Net myNet(topology);

    vector <double> inputVals;
    myNet.feedForward(inputVals);

    vector <double> targetVals;
    myNet.backProp(targetVals);

    vector <double> resultVals;
    myNet.getResults(resultVals);
}

I am not quite sure what this is about. At first I suspected that this would be about that the vector dynamic library is not linked so I came up with this dummy program to test it:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    cout << "HW is done"<<endl;
    printf("Hello");
    return 0;
}

This program would surprisingly compile and throws no errors but there are no outputs of it. No printing, nothing.

I am working on a mac and would appreciate if anyone would be able to help me with this issue. Thanks!

too honest for this site
  • 12,050
  • 4
  • 30
  • 52
Ruby K
  • 1
  • 1

0 Answers0