2012-03-26 27 views
9

durante aproximadamente 5 días consecutivos he intentado configurar mi computadora con el entorno C++ para programar con bibliotecas como sdl, glm, opengl. Es importante para nosotros poder ejecutarlo en máquinas Unix en presentaciones, así que estoy ejecutando con cmake. Finalmente conseguí que funcionara con el cmake-gui, ni siquiera me molestaría en intentarlo con ningún IDE.Uso de cmake en Windows para C++

especifiqué mi proyecto de carpeta y dónde construir los archivos binarios, obtuve una carpeta "CMakeFiles" junto con un txt "CMakeCache", un archivo CMAKE "cmake_install.cmake" y un archivo "Makefile". también en mi carpeta "CMakeFiles" hay muchas otras carpetas como "CMakeTmp", "CompilerIdC", "CompilerIdCXX, etc." y en ambas carpetas "Compilador *" tiene cada uno un .exe que no funciona. Entonces, ¿dónde está mi ejecutable deseado?

abrí cmd y navegué a mi carpeta e intenté escribir "hacer" como se supone que debemos hacer de acuerdo con la instrucción. por desgracia, no funcionó muy bien. ¡esperando que puedas compartir tu sabiduría y ayudar a un novato como yo!

¿qué se necesita exactamente para compilar proyectos que contienen bibliotecas adicionales? hasta ahora tengo un compilador, Mingw32, el último CMake y el uso de cmake-gui para extraer los binarios, pero obtiene makefiles.

EDITAR: hrrm. ¿Soy solo yo quien tiene este tipo de problemas? puedo añadir que he vistazo a fondo a unos 10 tutoriales y el 90% de los pasos son similares (si se compila con VS, que he intentado en un primer momento):

  • Descargar última SDL
  • hacer una carpeta sobre, por ejemplo C: \ SDL con dos carpetas, incluir y lib
  • Copiar las librerías e incluye desde el descargado SDL
  • Hacer nuevos VS proyecto, directorios abierta VC++ y añadir la carpeta/int lib por ejemplo, C: \ SDL
  • Añadir al enlazador SDL.lib y SDLmain.lib (me aseguré de que estuvieran vinculados, no hay problema aquí)
  • Cambie el sistema a Windows (opcional si no quieres dos ventanas)
  • adicionales incluyen a "bibliotecas adicionales"
  • poner el archivo SDL.dll (que conseguí de la última SDL) en mi C: \ windows \ system32 (64SysWoW) y también en mi archivo de proyecto.

así que lo que en realidad estoy buscando es gettning la CMake para trabajar, ya que genera y construye fuentes éxito (con la interfaz gráfica de usuario) y me siento cierre im in. ¿Es necesario añadir ninguna bibliotecas adicionales de SDL a mi compilador mingw32 y/o cmake?

+0

Es difícil saber exactamente lo que está pasando mal aquí. Intente replicar el paso 1 del tutorial de http://www.cmake.org/cmake/help/cmake_tutorial.html y vea si eso funciona para usted. Si no, publique exactamente lo que no funciona. – jkerian

+0

Use CMake para generar archivos de proyecto de Visual Studio para su proyecto, luego use Visual Studio para compilarlo. – karlphillip

+0

@karlphillip también hice eso (con vs 10 express) y ejecuté el archivo compilado, y logré construir el archivo y obtuve "1 éxito, e 0 error, 1 actualizado, 1 omitido" y cuando presioné play Tengo: C: \ .......... \ Debug \ ALL_BUILD El sistema no puede encontrar el archivo especificado –

Respuesta

5

Ya casi llegó con Visual Studio. Seleccione Visual Studio como destino. Abra el proyecto generado en Visual Studio, compilarlo. (al igual que ya lo hiciste). Luego, en lugar de intentar ejecutar BUILD_ALL, ejecutar un proyecto real que cree un ejecutable, también debe estar en esa lista. Simplemente haga clic derecho y 'jugar'.

Si sigues recibiendo errores, publícalos en detalle incluyendo lo que hiciste antes del error. Nota: un proyecto CMake multiplataforma cuidadosamente configurado (también conocido como CMakeLists.txt) no debería requerir ninguna manipulación con los directorios de VC++. Debería funcionar automágicamente, especialmente con libs conocidas como SDL.

+0

guau, realmente funcionó. y cuando necesito ejecutar este proyecto de VS en ubuntu, puedo simplemente copiar toda la carpeta del proyecto y espero compilarlo nuevamente sin problemas. –

+0

Depende de su definición de 'la carpeta del proyecto' :) Cmake espera el siguiente flujo de trabajo: ejecute CMake en el directorio que contiene los archivos fuente y el CMakeLists.txt. Genere algunos archivos de proyecto según la plataforma. Ejecute su IDE u otras herramientas para compilar el proyecto, utilizando los archivos de proyecto generados. (como Make + GCC, Visual Studio, ...) – Bob

+0

Yaman: Necesita copiar todos los archivos CMake y ejecutar cmake nuevamente bajo Ubuntu. No puede esperar que dos sistemas diferentes tengan las mismas versiones de bibliotecas instaladas en el mismo lugar. CMake está aquí exactamente por esta razón: para permitir la configuración del proyecto en un entorno heterogéneo. – stativ

1

Si lo entendí correctamente, quiere utilizar CMake en su proyecto. Estoy usando CMake en todos mis proyectos.No le daré instrucciones exactas paso a paso, ya que uso Arch Linux pero también lo usé en Windows 7.

  1. Para hacer CMake encontrar las bibliotecas, a menudo es necesaria para establecer la variable de entorno CMAKE_PREFIX_PATH para que apunte a los directorios donde se instalan las dependencias de su proyecto.
  2. Configure su variable de entorno PATH para que pueda invocar su compilador y realizar simplemente llamando llamando, por ejemplo. make. Creo que tiene que hacer que manualmente para Mingw32, para Visual Studio puede usar el "Progreso del comando de Visual Studio" que ya tiene estas variables establecidas.
  3. Ejecute CMake con el generador deseado. Para seleccionar el generador desde la línea de comando use el interruptor -G. Es probable que utilice uno de los siguientes (el ... significa que otras opciones que desea pasar a cmake)

    Para GNU make utilizan en MinGW utilizar cmake -G "MinGW Makefiles" ...

    Para nmake de utilizar Visual Studio cmake -G "NMake Makefiles" ...

    También es posible crear un proyecto de Visual Studio, pero no lo recomiendo, ya que es bastante difícil configurar versiones automáticas. También tuve algunos problemas con las dependencias cuando traté de usar el proyecto VS.

  4. cambie el directorio a su directorio de construcción (. Es decir, aquel en el que llamó cmake, que contiene el archivo CMakeCache) y ejecutar make o nmake
4

si ejecuta cmake por orden:

cmake -G "Visual Studio 14 Win64" path\to\source\dir 

necesita ejecutar este comando para continuar (en Visual Studio Command Prompt):

msbuild Project.sln 

ya sea si se ejecuta cmake:

cmake -G "NMake Makefiles" path\to\source\dir 

es necesario ejecutar este cmd para continuar (en sistema de Visual Studio Preguntar):

nmake