¿Cómo hacer que los archivos de encabezado se puedan incluir a través del nombre de la biblioteca? -- ++ campo con cmake campo con include campo con clion camp Relacionados El problema

How to make header files can be include via Library name?


0
vote

problema

Español

Estoy tratando de hacer una biblioteca de cripto de plataformas en C ++ en https://github.com/ haithngn / cryptor algo como https://github.com/mailcore/mailcore2

La estructura es:

ingrese la descripción de la imagen aquí

¿Puedo hacer que los archivos de encabezado puedan incluir en las afirmaciones como esta:

  #include <Cryptor/MD5Encryptor.h>   

Puedo incluir este encabezado directamente desde la ruta absolutamente del archivo

  ../core/CryptorCore.h   

Pero este formato hará que el código fuente no pueda crear éxito en un proyecto XCODE.

Intenté simular el Mailcore2, pero eso es muy difícil.

Espero que pueda sugerirme cualquier solución o hacer un favor PR en mi repositorio.

gracias,

Original en ingles

I'm trying to make a cross-platforms crypto library in C++ at https://github.com/haithngn/cryptor something like https://github.com/MailCore/mailcore2

The Structure is:

enter image description here

Can I make any header files can be include in the statements like this:

#include <Cryptor/MD5Encryptor.h> 

I can include these header directly from absolutely file path

../core/CryptorCore.h 

But these format will make the source code cannot build succeed in an XCode Project.

I tried to simulate the MailCore2 but that's very difficult.

Hope you can suggest me any solution or do a favor PR on my Repository.

Thanks,

           
   
   

Lista de respuestas

0
 
vote

Necesitas tener una jerarquía adecuada. Primero, no, no puedes tener

  az0  

Con su configuración actual, no mientras construya la biblioteca, y no sin aplastar la jerarquía al instalar sus archivos (lo que cmake puede hacer).

Lo que puedes hacer es:

  az1  

Si agrega su proyecto dentro de una carpeta az2 en lugar de estar en la raíz de su proyecto. Le aconsejaría que cree un archivo ->with("phone")623 que permita a las personas recoger su biblioteca una vez instaladas, para que no tengan que saber dónde incluye la biblioteca o qué es el nombre de las bibliotecas. < / p>

 

You need to have a proper hierarchy. First, no, you can't have

#include <Cryptor/MD5Encryptor.h> 

with your current setup, not while building the library, and not without flattening the hierarchy when installing your files (which CMake can do).

What you can do is:

#include <Cryptor/core/abstract/MD5Encryptor.h> 

if you add your project inside a Cryptor folder instead of being at the root of your project. I would advise you to create a Cryptor.cmake file that would allow people to pick up your library once installed, so that they don't have to know where the library includes are or what the libraries name is.

 
 
         
         
0
 
vote

No debe ser necesario apuntar a cada archivo de encabezado. Solo agregue todos los directorios que contengan estos archivos de encabezado con az4 .

Para la inclusión del archivo de encabezado SRC / NORE / Cryptorcore.h con

  az5  

Tienes que señalar

  az6  
 

It should not be necessary to point to every single header file. Just add all directories containing these header files with include_directories(PATH_TO_HEADERS).

For the include of the header file src/core/CryptorCore.h with

#include "CryptorCore.h" 

you have to point to

include_directories(${PROJECT_DIR}/core/) 
 
 

Relacionados problema

0  Clion (C ++). Tengo "Error 127" cuando se intentó depurar  ( Clion c got error 127 when tried to debug ) 
en Clion (C ++) en Debian Linux cuando quiero depurar, recibo este mensaje: compLbl7 Googling no me ayudó. ¿Cómo puedo arreglar eso en Clion? Debian Lin...

1  ¿Cómo depurar Occi use clion?  ( How to debug occi use clion ) 
Utilizo CLON para hacer una aplicación OCCI.My Cmakelist.txt: Bool3 Mi programa: Bool4 Mi sistema operativo es Ubuntu 12.04 LTS y la versión de Or...

0  Utilizando el encabezado de CGAL 4.12 solo en un proyecto  ( Using cgal 4 12 header only in a project ) 
Estoy trabajando en un proyecto de clase en C ++ usando Clion, que requiere la biblioteca de CGAL, y tengo problemas para que la Biblioteca trabaje con mi pro...

26  Entrada estándar de Clion mientras se depura  ( Clion standard input while debugging ) 
Lo que estoy tratando de hacer es básicamente: ./myProgram < myData.txt mientras estoy depurando con Clion IDE. Simplemente no puedo encontrar la opción...

2  Clion Ctakelists.txt Añadir Argumentos Argv a la configuración  ( Clion cmakelists txt add argv arguments to configuration ) 
Tengo configuración en Ctakelists.txt set(SOURCE_FILES client/client.cpp) add_executable(Client ${SOURCE_FILES} client/client.cpp) Entonces puedo inici...

0  ¿Cómo puedo tener FreeGlut 3.2.1 y Glew 2.1.0 Ejecutar en MingW-W64?  ( How can i have freeglut 3 2 1 and glew 2 1 0 run on mingw w64 ) 
Soy un poco nuevo para programar, y estoy tratando de obtener un programa OpenGL para que se ejecute en un compilador de X64bit C ++. El código funcionó en M...

2  Windows GTEST ESPER_STREQ: ERROR: No hay función coincidente para llamar a 'CMPHELPERSTREQ'  ( Windows gtest expect streq error no matching function for call to cmphelperst ) 
Por alguna razón, Gtest no lo está haciendo tan bien en mi estación de desarrollo. Algunas pruebas de afirmación / espera están funcionando, pero no puedo con...

13  ¿Hay alguna manera de trabajar en múltiples proyectos en Clion?  ( Is there a way to work on multiple projects in clion ) 
Estoy buscando una forma de trabajar en múltiples proyectos en paralelo en Clion IDE. Por ahora solo puedo trabajar en cada proyecto en una ventana a la vez...

1  Desaste de los usuarios con Clion  ( Users mess with clion ) 
Tengo un problema con Clion: Estaba usando una cuenta de administrador (x) en mi PC, y luego creo una nueva cuenta (Y) y también le doy la alimentación del ...

26  Ctake - Creando una biblioteca estática  ( Cmake creating a static library ) 
Tengo dos archivos en mi proyecto llamado @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { int position = spinner...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos