title: What does "$<" mean when used in a g++ argument?
body: <p>I am using a library which has a sample application. The sample makefile contains <code>$&lt;</code> in the arguments:</p>
  
  <pre><code>all:test.cpp
      g++ -Wl,--no-as-needed -o Example $&lt;
  clean:
      rm -f SampleApp11
  </code></pre>
  
  <p>I've looked this up and <a href="https://www.tutorialspoint.com/makefile/makefile_macros.htm">tutorialspoint</a> say that </p>
  
  <blockquote>
    <p>$&lt; the name of the related file that caused the action.</p>
  </blockquote>
  
  <p>Another <a href="https://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html">website</a> states that:</p>
  
  <blockquote>
    <p>this is a suffix replacement rule for building .o's from .c's
    it uses automatic variables $&lt;: the name of the prerequisite of
    the rule(a .c file) and $@: the name of the target of the rule (a .o file) 
    (see the gnu make manual section about automatic variables)
    .c.o:
    $(CC) $(CFLAGS) $(INCLUDES) -c $&lt;  -o $@</p>
  </blockquote>
  
  <p>I am still confused, what does this means?</p>