He estado buscando en Google por un tiempo y todavía no me han resultado, así que me dirijo a ustedes ^^ Estoy tratando de usar CMake para compilar mi proyecto C++ y tengo un problema en el encabezado caminos.CMake y rutas de cabecera absolutas
Como uso muchas clases organizadas en varios directorios, todas mis sentencias include tienen rutas absolutas (por lo que no es necesario usar "../../") pero cuando intento generar CMake-generated Makefile simplemente no funciona.
¿Alguien sabe cómo especificar en CMakeLists.txt que todas las inclusiones son con rutas absolutas? Muchas gracias de antemano.
Mi salida al intentar hacer
~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:45:25: Utils/Utils.h: No such file or directory
~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:46:35: Utils/StreamTokenizer.h: No such file or directory
Mi archivo CMakeLists.txt:
#The following command allows the use of the "file" command
cmake_minimum_required(VERSION 2.6)
#The declaration of the project
project(multiboost)
#This allows recursive parsing of the source files
file(
GLOB_RECURSE
source_files
*
)
list(REMOVE_ITEM source_files ./build/*)
#This indicates the target (the executable)
add_executable(
multiboost
${source_files} #EXCLUDE_FROM_ALL build/
)
puede que prvodie un pequeño ejemplo (source/header/cmake)? también, los caminos absolutos son generalmente una mala idea. La mejor manera de hacerlo es, por ejemplo, la manera en que lo hace: especificar una sola raíz que esté en la ruta de inclusión del compilador y comenzar desde allí. – stijn
Sí exactamente, esto es lo que estoy haciendo: digamos que tengo un src/dir que contiene todos los subdires de la fuente así como también el archivo principal. En todas mis declaraciones include, solo tengo que especificar la ruta desde src /. En mi proyecto de XCode, funciona bien, pero no descubrí cómo hacerlo en CMake. (Gracias por su respuesta; o)) – Archy
sí, pero aún necesitamos un ejemplo + más información ('simplemente no funciona' es tan críptico como puede ser una descripción del error, no nos dice nada en absoluto) – stijn