mogę zaktualizować Sublime Text 3 dla C/C++, ale muszę napisać kod w nowoczesnych wersjach takich jak C11 i C++ 11.C11 i C++ 11 problemy w Sublime Text 3
Kiedy próbuję kod C11 takiego:
#include <stdio.h>
int main(int argc, char ** argv)
{
puts("C99 Version:");
for(int i = 0; argv[i]; i++) {
printf("%d: %s\n", i, argv[i]);
}
getchar();
return 0;
}
Sublime daje błędy:
C:\Users\pc\Desktop\CPPproject\c99.c:7:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
for(int i = 0; argv[i]; i++) {
^
C:\Users\pc\Desktop\CPPproject\c99.c:7:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
można wyjaśnić mi jak używać -std = c99, -std = gnu99, -std = opcje c11 lub -std = gnu11?
============================================== ====================================
samo z C++ 11. Oto kod:
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main(int argc, char ** argv) {
stringstream version;
version << "GCC version: "
<< __GNUC__ << "." << __GNUC_MINOR__ << "." << __GNUC_PATCHLEVEL__
<< "\nVersion string: " << __VERSION__;
cout << version.str() << endl;
vector<string> v = { "one", "two", "three" }; // C++11 feature - initializer list
for(string s : v) { // C++11 feature - range-based for loop
cout << s << endl;
}
return 0;
}
i lista błędów:
C:\Users\pc\Desktop\CPPproject\main.cpp: In function 'int main(int, char**)':
C:\Users\pc\Desktop\CPPproject\main.cpp:17:45: error: in C++98 'v' must be initialized by constructor, not by '{...}'
vector<string> v = { "one", "two", "three" }; // C++11 feature - initializer list
^
C:\Users\pc\Desktop\CPPproject\main.cpp:17:45: error: could not convert '{"one", "two", "three"}' from '<brace-enclosed initializer list>' to 'std::vector<std::basic_string<char> >'
C:\Users\pc\Desktop\CPPproject\main.cpp:19:18: error: range-based 'for' loops are not allowed in C++98 mode
for(string s : v) { // C++11 feature - range-based for loop
^
mi pomóc rozwiązać te problemy, proszę!
I jeszcze jedno pytanie: Kiedy uruchomię kod - plik .exe pojawia się w tym samym folderze z kodem źródłowym i muszę go otworzyć. Czy są jakieś możliwości, aby zobaczyć wyjście w Sublime Text po kliknięciu "ctrl + b" ???
Dziękuję !!!
Sublime Text nie posiada kompilator lub sprawdzania składni sama, to musi być w module, który został zainstalowany. Sprawdź plik konfiguracyjny dla tego modułu. –
@JoachimPileborg Mylące. Jest to problem, który można łatwo naprawić bez instalowania czegokolwiek. Sublime Text ma systemy kompilacji (tzn. Polecenia do uruchomienia na pliku lub projekcie). Luchnik po prostu musi je skonfigurować. – Rapptz
[Tutaj jest dokumentacja] (http://docs.sublimetext.info/en/latest/reference/build_systems.html) na systemach kompilacji ST3. Stwórz sobie nowe dla każdego C i C++, które zawierają odpowiednią flagę '-std'. – Praetorian