collect2: ld returned 1 exit status error
<p>I have three files like the following:</p>

<p><strong>Movie.h</strong></p>

<pre><code>struct Movie{
    char title[30];         // the hour of the current time
    char director[30];          // the minute of the current time
    int length;
} ;

void printMovieInfo(Movie *s);
</code></pre>

<p><strong>Movie.cpp</strong></p>

<pre><code>#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;cstring&gt;
#include &lt;cmath&gt;

#include "Movie.h"

using namespace std;

void printMovieInfo(Movie *s){

    cout &lt;&lt; "Hi";

}
</code></pre>

<p><strong>and a file with the main</strong> </p>

<pre><code>#include "Movie.cpp"
using namespace std;

int main()
{
    struct Movie *m;
    printMovieInfo(m);
}
</code></pre>

<p>When I run the program, I get the following error:</p>

<pre><code>    collect2 ld returned 1 exit status
</code></pre>

<p>and warnings:   </p>

<pre><code>/tmp/ccIe4dlt.o In function `printMovieInfo()':
Movie.cpp (.text+0x0): multiple definition of `printMovieInfo()'
/tmp/cc91xrNB.o HelloWorld.cpp:(.text+0x0): first defined here
</code></pre>

<p>I just want to call a function to print "Hi", but I'm not sure why I get this error</p>
