2012-07-14 14 views
6

का उपयोग कर सी ++ प्रोग्राम नहीं बना सकता है, मुझे लगता है कि आप में से कई सब्लिमे टेक्स्ट 2 एडिटर का उपयोग करने के लिए उपयोग या उपयोग कर रहे हैं। मुझे अजीब त्रुटि है: सी ++ प्रोग्राम नहीं बनाया जा सकता है।सब्लिमे टेक्स्ट 2

मेरेC++.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}'"] 
     } 
    ] 
} 

मैंने पाया कि जब cmd सरणी ${file} या $file की तरह किसी भी प्रतिस्थापित अभिव्यक्ति होता है, का निर्माण शुरू नहीं करता है। अन्यथा यह शुरू होता है।

यह कंपाइलर से कोई फर्क नहीं पड़ता। जब मैंने "cmd": ["notify-osd", "$file"] की कोशिश की है, तो यह काम नहीं किया; लेकिन "cmd": ["notify-osd", "sometexthere"] के साथ यह काम किया।

हाथ से संकलित सही काम करता है।

मेरे कार्यक्रम:

#include <iostream> 

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

मैं Ubuntu 12.04 उपयोग करते हैं, 32 बिट। उत्कृष्ट संपादक का संस्करण: 2.0.1।

यदि यह वह स्थान नहीं है जहां मैं यह प्रश्न पूछ सकता हूं, तो कृपया मुझे बताएं कि सही क्या है।

उत्तर

7

अपनी सी ++। सब्लिम-बिल्ड फ़ाइल संपादित करें .... एक आकर्षण की तरह काम करता है।

{ 
    "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

यह शानदार (सीर 3) पर सी ++ 11 संकलन को चालू करने का तरीका है। 12.04 के लिए "-std = C++ 0x" का उपयोग करें। –

1

मैं इस समस्या का समाधान समाधान प्रदान कर सकता हूं: मेकफ़ाइल का उपयोग करें। सब्लिम टेक्स्ट 2 आपके लिए C++ संकलित करने के लिए मेकफ़ाइल चला सकता है।

आपको सब्लिम फ़ोरम (http://www.sublimetext.com/forum/) में पूछकर इस प्रश्न का बेहतर उत्तर प्राप्त होने की अधिक संभावना होगी। यहां तक ​​कि उन्हें शायद यह जानने में दिलचस्पी होगी कि यह "कैसे" काम नहीं करता है (यानी अगर "बिल्ड" दबाते समय कुछ भी नहीं होता है, तो आप इसे निर्दिष्ट करना चाहेंगे)।

+0

ऐसे प्रश्न पूछने के लिए यह सही जगह है। Sublime एक अच्छा संपादक है, और स्वाभाविक रूप से StOv उपयोगकर्ताओं के लिए रुचि है। ओपी को प्राथमिक कोड के सरल संकलन, और मेकफ़ाइल द्वारा "वर्कअराउंड" के साथ समस्याएं थीं ... स्वीकृत उत्तर के निशान के लायक नहीं है। –

+0

@PMarecki और उम्मीद है कि इस प्रश्न के उत्तर की खोज करने वाले किसी भी व्यक्ति के पास स्वीकार्य उत्तर और शीर्ष मतदान वाले उत्तर दोनों की जांच करने के लिए उनके बारे में जानकारी होगी। – Thorbear

+0

@PMarecki मुझे लगता है कि मेकफ़ाइल का उपयोग करना एक बिल्कुल उचित सुझाव है। ओपी को जवाब स्वीकार कर लिया गया, ऐसा लगता है कि उसने भी किया था। –

0

मुझे सब्लिमे टेक्स्ट पर काम कर रहे सी ++ संकलन के लिए कई घंटे लग गए, और मुझे अभी भी कुछ मामूली समस्याएं हैं (जैसे तथ्य यह है कि सब्लिमे टेक्स्ट स्पष्ट रूप से बाहरी विंडो/कंसोल में प्रोग्राम निष्पादित नहीं कर सकता)।

यहाँ मेरी कॉन्फ़िग फ़ाइल है:

{ 
"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" 

} 

इसके अलावा (UTF8 करने के लिए एन्कोडिंग बदलने के लिए करता है, तो संकलक काम नहीं करता है सुनिश्चित कर लें), (अपने ओएस पथ चर करने के लिए MinGW के बिन फ़ोल्डर जोड़ने स्टार्ट मेनू में 'पर्यावरण परिवर्तनीय' देखें, और फिर पथ चर के लिए देखें)।

संबंधित मुद्दे