[Jderobot] Problema de compilación de librería externa

Luis Roberto Morales lr.morales.iglesias en gmail.com
Mie Oct 1 13:38:58 CEST 2014


Buenas tardes,
Si la librería está o en alguna de las rutas de búsqueda (LINK_DIRECTORIES)
o importada (ADD_LIBRARY( ... SHARED IMPORTED)), es cuestión de añadirla
en  TARGET_LINK_LIBRARIES:
TARGET_LINK_LIBRARIES(MyPrjBin lua ...)

La variable CMAKE_CXX_FLAGS está pensada más para órdenes directas al
compilador, por lo que incluirlo ahí funcionaría pero no es recomendable a
largo plazo.

También decir que se recomienda usar
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall" )
frente a
set(CMAKE_CXX_FLAGS "-g -Wall" )

ya que de la primera forma permites que entren de forma externa parámetros
al compilador y enlazador de c++ - la segunda eliminaría el contenido
actual de la variable y lo reemplazaría por lo nuevo.


Un saludo,
Roberto

El 1 de octubre de 2014, 11:10, Juan Navarro Bosgos <jnbosgos en gmail.com>
escribió:

> Hola Jesús,
>
> La compilación utilizando cmake y make se configura a través del fichero
> CMakeLists.txt, en este debes indicar las librerías a utilizar que debe
> buscar cmake entre otras cosas; también puedes añadir flags para el
> compilador mediante 'set( CMAKE_CXX_FLAGS "-g -Wall" )', este es un ejemplo
> que uso en uno de mis componentes para poder usar el compilador gdb y que
> me avise de todos los warnings, para tu caso quedaría:
>
> set( CMAKE_CXX_FLAGS "-llua" )
>
>
> Un saludo,
> Juan
>
> El 30 de septiembre de 2014, 19:58, Jesús <dagda117 en gmail.com> escribió:
>
> Hola, muy buenas de nuevo. Tenía un pequeño problemilla con c++ a ver si
>> alguien me puede echar un cable. Estoy intentando compilar una componente
>> de
>> jderobot, las cuales se compilan con el cmake, y el make propio que se
>> explica en el manual, pero dentro de una de las partes de la componente
>> estoy utilizando unas librerías externas de la misma componente. El
>> problema
>> viene al hacer el make. Me salta un error donde se dice que hay métodos
>> indefinidos.
>>
>> He probado a hacer esto mismo con un programa aparte compilándolo en c++
>> tal
>> que:
>>
>> g++ main.cpp -o main -llua
>>
>> (lua es la librería externa que estoy añadiendo)
>>
>> En este caso funciona sin error alguno, he podido ejecutar scripts de todo
>> tipo pero a la hora de hacer el make me salta un error idéntico a que si
>> hiciera:
>>
>> g++ main.cpp -o main
>>
>> Es decir, sin llamar a la librería. ¿Existe alguna clase de make -l a la
>> hora de compilar?
>>
>> Un saludo y gracias de antemano.
>>
>>
>>
>> --
>> View this message in context:
>> http://jderobot-developer-list.2315034.n4.nabble.com/Problema-de-compilacion-de-libreria-externa-tp4642392.html
>> Sent from the Jderobot Developer List mailing list archive at Nabble.com.
>> _______________________________________________
>> Jde-developers mailing list
>> Jde-developers en gsyc.es
>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20141001/0b6d3fe4/attachment.htm 


More information about the Jde-developers mailing list