Listo...!! Ya me funcionó!! Muchas gracias, me sirvió de mucha ayuda :)<br><br><div class="gmail_quote">El 30 de noviembre de 2011 15:45, Israel Alberto Roldan Vega <span dir="ltr"><<a href="mailto:israel.alberto.rv@gmail.com">israel.alberto.rv@gmail.com</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Por cierto, la referencia la tome de este link y después de buscar en muchos sitios.<div><br></div><div><a href="http://eris.liralab.it/yarpdoc/using_cmake.html" target="_blank">http://eris.liralab.it/yarpdoc/using_cmake.html</a><br clear="all">



<div><br></div><div><br></div><div>Saludos,<br></div><div>Israel Alberto RV</div><br>
<br><br><div class="gmail_quote">El 30 de noviembre de 2011 14:13, Israel Alberto Roldan Vega <span dir="ltr"><<a href="mailto:israel.alberto.rv@gmail.com" target="_blank">israel.alberto.rv@gmail.com</a>></span> escribió:<div>

<div></div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Solucionado el problema:<div><br></div><div><br></div><div>En el archivo CMakeLists.txt:</div><div><div><br></div><div>cmake_minimum_required(VERSION 2.8)</div><div>project(sourcetohtml)</div><div>add_library(foo foo.cpp foo.h)</div>




<div>add_executable(sourcetohtml main.cpp)</div><div>target_link_libraries(sourcetohtml foo)</div><div><br></div><div><br></div><div>En el archivo main.cpp y foo.cpp cambia:</div><div><br></div><div>#include <foo.h></div>




<div>por</div><div>#include "foo.h"</div><div>//Error, cuando usamos librerias que creamos nosotros o includes que creamos nosotros, se usan comillas.</div><div><br></div><div>Te adjunto los archivos para que los puedas probar.</div>




<div>Ademas te anexo unas lineas de código que puedes correr en Linux para compilar mas rápido.</div><div><br></div><div>cd problemaCMake2</div><div>mkdir build</div><div>cd build</div><div><br></div><div>Para compilar dentro de la carpeta de build:</div>




<div><div>clear && rm * -Rf && cmake .. && make && ./sourcetohtml</div></div><div><br></div><div><br></div><div><br></div><div>Saludos,<br></div><div>Israel Alberto RV</div><br>
<br><br><div class="gmail_quote">El 30 de noviembre de 2011 09:26, Asdrúbal Iván Suárez Rivera <span dir="ltr"><<a href="mailto:asdrubal.ivan.suarez.rivera@gmail.com" target="_blank">asdrubal.ivan.suarez.rivera@gmail.com</a>></span> escribió:<div>



<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Como no, aquí se los envío, de todas formas los copié antes. Compilando con g++ archivo por archivo a objeto no me da ningún error<div>




<br></div><div>fíjense los comandos que ejecuto</div><div><br></div><div>g++ foo.cpp -c -I.</div>

<div>g++ main.cpp -c -I.</div><div>g++ main.o foo.o -o main</div><div><br></div><div>Eso compila sin problema, ahora bien, usando el CMake me da error de undefined reference, les envío ahí en el tar.gz el CMakeLists.txt</div>






<div><br></div><div>Saludos<br><br><div class="gmail_quote">El 30 de noviembre de 2011 10:22, Israel Alberto Roldan Vega <span dir="ltr"><<a href="mailto:israel.alberto.rv@gmail.com" target="_blank">israel.alberto.rv@gmail.com</a>></span> escribió:<div>




<div><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nos podrías enviar de favor los códigos fuentes para probarlos en mi computadora y poderte decir cual es el error.<div>






<br></div><div>O la otra opción es que seas muy descriptivo y copies todo, código fuente, errores, línea de código para compilar, etc.</div>

<div>Es como si hubieras comprado una televisión y llegas a la tienda de donde la compraste, y la devuelves. Dices "es que no sirve", ellos te pregunten "porque no sirve, no prende, no se ve bien la imagen", y tu dijeras "Ha pues porque no sirve mire las entradas de atrás". Realmente no se dio una explicación del problema, algo que nos ayude a ayudarte.<br clear="all">








<div><br></div><div><br></div><div><br></div><div>Saludos,<br></div><div>Israel Alberto RV</div><br>
<br><br><div class="gmail_quote">El 30 de noviembre de 2011 08:34, Asdrúbal Iván Suárez Rivera <span dir="ltr"><<a href="mailto:asdrubal.ivan.suarez.rivera@gmail.com" target="_blank">asdrubal.ivan.suarez.rivera@gmail.com</a>></span> escribió:<div>






<div></div><div><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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 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 style="white-space:pre-wrap">  </span></div></div>std::cout<<"algo";</div><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><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" target="_blank">srd4121@njit.edu</a>></span> escribió:<div>








<div><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" target="_blank">asdrubal.ivan.suarez.rivera@gmail.com</a>>:<br>
<div>> 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" target="_blank">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></div></div><br><br clear="all"><div><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></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">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></div></div><br></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">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></div></div><div><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></div></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">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></div></div><br></div>
</blockquote></div></div></div><br></div>
<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>