[C con Clase] Pregunta Newbie con respecto a CMake

Israel Alberto Roldan Vega israel.alberto.rv en gmail.com
Mie Nov 30 15:52:56 CET 2011


Nos podrías enviar de favor los códigos fuentes para probarlos en mi
computadora y poderte decir cual es el error.

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.
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.



Saludos,
Israel Alberto RV



El 30 de noviembre de 2011 08:34, Asdrúbal Iván Suárez Rivera <
asdrubal.ivan.suarez.rivera en gmail.com> escribió:

> 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:
>
> foo.h:
>
> #ifndef FOO_H
> #define FOO_H
>
> void algo();
>
> #endif
>
> foo.cpp:
>
> #include <foo.h>
> #include <iostream>
>
> void algo()
> {
> std::cout<<"algo";
> }
>
> main.cpp
>
> #include <iostream>
> #include <foo.h>
>
> int main(int argc, char **argv) {
>     algo();
>     return 0;
> }
>
>
> 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.
>
> Saludos!
>
> El 30 de noviembre de 2011 08:56, Steven Davidson <srd4121 en njit.edu>escribió:
>
> Hola Asdrúbal,
>>
>> 2011/11/30 Asdrúbal Iván Suárez Rivera <
>> asdrubal.ivan.suarez.rivera en gmail.com>:
>> > Tengo una pequeña duda usando el programa CMake, resulta que tengo 3
>> > archivos, llamados
>> >
>> > main.cpp
>> > foo.h
>> > foo.cpp
>> >
>> > Me gustaría saber como puedo yo hacer que se me compile un archivo
>> foo.o y
>> > se enlace con un main.o, para que no el g++ no me dé un error del tipo
>> > "undefined reference" al llamar alguna función desde el main que está
>> > declarada en foo.h y definida en foo.cpp
>> >
>>
>> Si el compilador/enlazador, "g++", te lanza un error, entonces
>> deberías hacer caso de tal error y no intentar eludirlo. Este tipo de
>> mensaje es del enlazador, ya que no encuentra la función que quieres
>> usar. Sin ver el código fuente, no te puedo decir si has cometido un
>> error o no. Es posible que el prototipo en "foo.h" no es idéntico a la
>> implementación en "foo.cpp". Por ejemplo,
>>
>> // foo.h
>>
>> int suma( int, int );
>>
>>
>> // foo.cpp
>>
>> #include "foo.h"
>>
>> float suma( float a, float b )
>> {
>>  return a+b;
>> }
>>
>> Y luego, en "main.cpp":
>>
>> #include <iostream>
>> #include "foo.h"
>>
>> int main()
>> {
>>  std::cout << suma( 4, 2 ) << std::endl;
>>
>>  return 0;
>> }
>>
>> Aquí, el enlazador te marcará un error de un uso o referencia sin
>> definir para 'suma(int,int)'. El compilador no te marca ningún error,
>> porque gramaticalmente todo es correcto, pero lógicamente no, ya que
>> 'float suma( float, float )' no es lo mismo que 'int suma( int, int
>> )'.
>>
>>
>> Espero que esto te oriente.
>>
>> Steven
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>
>
>
>
> --
> Asdrúbal Iván Suárez Rivera
>
> *El éxito de alguien que enseña no es que sepa mucho, sino que lo poco
> que sabe lo sepa hacer llegar.*
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111130/93b86c45/attachment.html>


Más información sobre la lista de distribución Cconclase