Multi-Objetivo Visual Studio Proyecto: Código de una sola fuente
-
22-08-2019 - |
Pregunta
¿Alguna sugerencia sobre cómo se puede ir sobre la creación de un sistema de construcción que se establezcan uno o dos bibliotecas contra un par de diferentes plataformas / objetivos.
El proyecto principal es en Visual Studio.
Por ejemplo, tengo una biblioteca:
nav.lib
Se compila en Windows y Linux con algunos retoques.
El archivo ejecutable que utiliza la biblioteca, win_nav.lib, sólo se compila en Windows en este momento con OpenGL.
Estoy portar este código para el iPhone. Aunque sé que no puedo compilar y enlazar toda la biblioteca en las ventanas me gustaría tratar de compilar el código de gráficos con OpenGL incluye e incluye OpenGLES. (Tal vez pueda probar mi código OpenGLES en la máquina de las ventanas también?)
planeo cambiar mi archivo de gráficos para incluir en base a las banderas del preprocesador:
#ifdef USE_OPEN_GL_FULL
#include <opengl/gl.h>
#else
#include <opengles/gl.h>
#endif
Así que, ¿cómo ir haciendo esto?
El uso de un par de diferentes scripts o diferentes proyectos en Visual Studio?
Solución
Esto es lo que "Configuraciones de soluciones" son para. Por defecto Visual Studio crea configuraciones de la versión y de depuración, pero se puede añadir sus propias configuraciones personalizadas también. Las opciones del proyecto son diferentes para cada configuración, por lo que acaba de establecer su #define en la configuración que lo necesita.
Cuando se está ejecutando su construcción automatizado que acaba de establecer el parámetro / build al nombre de la configuración que desea compilar con.
Otros consejos
Dentro de VS puede utilizar la Administrador de configuración a dirigirse a diferentes construye y utilizar diferentes bibliotecas dentro de su código.