Correcto Steven, eso lo sé... La cuestión es que la función ya la tengo definida en foo.cpp y he revisado la cabecera y está correcta, fíjate:<div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">

<div>foo.h:</div><div><br></div><div><div>#ifndef FOO_H</div></div><div><div>#define FOO_H</div></div><div><div><br></div></div><div><div>void algo();</div></div><div><div><br></div></div><div><div>#endif</div></div><div>

<div><br></div></div><div><div>foo.cpp:</div></div><div><div><br></div></div><div><div><div>#include <foo.h></div></div></div><div><div><div>#include <iostream></div></div></div><div><div><div><br></div></div>

</div><div><div><div>void algo()</div></div></div><div><div><div>{</div></div></div><div><div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div></div>std::cout<<"algo";</div><div><div>

<div>}</div></div></div><div><div><br></div></div><div><div>main.cpp</div></div><div><div><br></div></div><div><div><div>#include <iostream></div></div></div><div><div><div>#include <foo.h></div></div></div><div>

<div><div><br></div></div></div><div><div><div>int main(int argc, char **argv) {</div></div></div><div><div><div>    algo();</div></div></div><div><div><div>    return 0;</div></div></div><div><div><div>}</div></div></div>

</blockquote><div><br></div><div>Creo sinceramente que no hay errores ahí. La cuestión es que quiero hacer que el CMake me enlace el foo.o y main.o para crear el main. Usando makefile me compila normalmente, sin embargo quiero, para aprender a usar CMake hacer lo mismo usando el CMake, valga la redundancia.</div>

<div><br></div><div>Saludos!</div><div><br><div class="gmail_quote">El 30 de noviembre de 2011 08:56, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hola Asdrúbal,<br>
<br>
2011/11/30 Asdrúbal Iván Suárez Rivera <<a href="mailto:asdrubal.ivan.suarez.rivera@gmail.com">asdrubal.ivan.suarez.rivera@gmail.com</a>>:<br>
<div class="im">> Tengo una pequeña duda usando el programa CMake, resulta que tengo 3<br>
> archivos, llamados<br>
><br>
> main.cpp<br>
> foo.h<br>
> foo.cpp<br>
><br>
> Me gustaría saber como puedo yo hacer que se me compile un archivo foo.o y<br>
> se enlace con un main.o, para que no el g++ no me dé un error del tipo<br>
> "undefined reference" al llamar alguna función desde el main que está<br>
> declarada en foo.h y definida en foo.cpp<br>
><br>
<br>
</div>Si el compilador/enlazador, "g++", te lanza un error, entonces<br>
deberías hacer caso de tal error y no intentar eludirlo. Este tipo de<br>
mensaje es del enlazador, ya que no encuentra la función que quieres<br>
usar. Sin ver el código fuente, no te puedo decir si has cometido un<br>
error o no. Es posible que el prototipo en "foo.h" no es idéntico a la<br>
implementación en "foo.cpp". Por ejemplo,<br>
<br>
// foo.h<br>
<br>
int suma( int, int );<br>
<br>
<br>
// foo.cpp<br>
<br>
#include "foo.h"<br>
<br>
float suma( float a, float b )<br>
{<br>
  return a+b;<br>
}<br>
<br>
Y luego, en "main.cpp":<br>
<br>
#include <iostream><br>
#include "foo.h"<br>
<br>
int main()<br>
{<br>
  std::cout << suma( 4, 2 ) << std::endl;<br>
<br>
  return 0;<br>
}<br>
<br>
Aquí, el enlazador te marcará un error de un uso o referencia sin<br>
definir para 'suma(int,int)'. El compilador no te marca ningún error,<br>
porque gramaticalmente todo es correcto, pero lógicamente no, ya que<br>
'float suma( float, float )' no es lo mismo que 'int suma( int, int<br>
)'.<br>
<br>
<br>
Espero que esto te oriente.<br>
<br>
Steven<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Asdrúbal Iván Suárez Rivera<br></div><br><i>El éxito de alguien que enseña no es que sepa mucho, sino que lo poco que sabe lo sepa hacer llegar.</i><br><br>


</div>