2012-07-14 5 views
6

Creo que muchos de ustedes están usando o utilizan el editor Sublime Text 2. Tengo un extraño error: los programas C++ no se pueden construir.No se puede construir el programa C++ utilizando Sublime Text 2

MiC++.sublime-build:

{ 
    "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"], 
    "working_dir": "${file_path}", 
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 
    "selector": "source.c, source.c++", 

    "variants": 
    [ 
     { 
      "name": "Run", 
      "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"] 
     } 
    ] 
} 

He descubierto que cuando la matriz cmd contiene cualquier expresión sustituido como ${file} o $file, la acumulación no se inicia. De lo contrario, comienza.

No importa del compilador. Cuando probé "cmd": ["notify-osd", "$file"], no funcionó; pero con "cmd": ["notify-osd", "sometexthere"] funcionó.

La compilación manual funciona correctamente.

Mi programa:

#include <iostream> 

int main() { 
    std::cout << "Hello World"; 
} 

Yo uso Ubuntu 12.04, 32 bits. Versión de Sublime Editor: 2.0.1.

Si no es el lugar donde podría hacer esta pregunta, dígame cuál es la correcta.

Respuesta

7

Edite su archivo C++. Sublime-build .... funciona como un amuleto.

{ 
    "cmd": ["g++", "-Wall", "-Wextra", "-pedantic", "-std=c++11", "${file}", "-o", "${file_path}/${file_base_name}"], 
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 
    "working_dir": "${file_path}", 
    "selector": "source.c, source.c++", 

    "variants": 
    [ 
     { 
      "name": "Run", 
      "cmd": ["bash", "-c", "g++ -Wall -Wextra -pedantic -std=c++11 '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"] 
     } 
    ] 
} 
+0

Esta es la forma de activar la compilación C++ 11 en sublime (también ver 3). Para 12.04 use "-std = C++ 0x". –

1

Puedo proporcionar una solución alternativa a este problema: Use archivos make. Sublime Text 2 puede ejecutar makefiles para compilar C++ por usted.

Es más probable que obtenga una mejor respuesta a esta pregunta si hace una pregunta en los foros de Sublime (http://www.sublimetext.com/forum/). Incluso allí probablemente estarían interesados ​​en saber "cómo" no funciona (es decir, si no sucede nada al presionar "Crear", es posible que desee especificar eso).

+0

Este es el lugar adecuado para hacer tales preguntas. Sublime es un excelente editor y, naturalmente, de interés para los usuarios de StOv. El OP tuvo problemas con la simple compilación de código elemental, y "solución" por makefiles ... no merece la marca de respuesta aceptada. –

+0

@PMarecki Y es de esperar que cualquier persona que busque la respuesta a esta pregunta tenga la inteligencia para comprobar tanto la respuesta aceptada como la respuesta más votado. – Thorbear

+0

@PMarecki Creo que usar makefiles es una sugerencia perfectamente razonable. Dado que OP aceptó la respuesta, parece que él también lo hizo. –

0

Me tomó varias horas obtener compilación C++ trabajando en Sublime Text, y todavía tengo algunos problemas leves (como el hecho de que Sublime Text aparentemente no puede ejecutar el programa en una ventana/consola externa).

Aquí está mi archivo de configuración:

{ 
"cmd": ["C:\\MinGW\\bin\\mingw32-g++.exe", "-Wall", "-time", "$file", "-o", "$file_base_name"], 

"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 

"working_dir": "${project_path:${folder}}", 

"selector": "source.c", 

"shell": true, 

"encoding": "latin1" 

} 

(asegúrese de cambiar la codificación UTF-8 si el compilador no funciona)

Además, agregue la carpeta bin de la MinGW a la variable PATH del sistema operativo (buscar 'variable de entorno' en el menú de inicio, y luego buscar la variable Path).

Cuestiones relacionadas