2013-08-11 3 views
0

Я установил eclipse ide (cdt) на свой ноутбук с Windows 8 и попытался написать простую программу c, чтобы проверить, выполняется ли программа.не удалось увидеть результат работы программы C++ на консоли

Он не выполнил и не дал ошибку: binary not found.

Итак, я сделал несколько поисков в Интернете и понял, что в моей системе не установлен компилятор c/C++.
Итак, я установил MinGW и выбрал компиляторы c и C++ во время установки.
Затем я установил переменную среды PATH в C: \ MinGW.
Я открыл затмение, написал простую программу c, и она работала так, как ожидалось!

Я создал проект C++, написал простой кусок кода и не мог видеть вывод в консоли!

Вот код:

#include<iostream> 
using namespace std; 

int main() 
{ 
    cout<<"sample text"; 
    return 0; 
} 
+0

понял это: Goto Project> Properties> C/C++ Строить> Настройки> Настройки инструментов (вкладка)> MinGW C++ Linker (опция)> Add Command (г ++ - static-libgcc -static-libstdC++) (команда по умолчанию - только g ++). –

ответ

1

Linker (опция)> Add Command (г ++ -static-libgcc -static-libstdC++)

Это не является правильным решением.

У вас есть только переменная среды пути c:\minGW.
Но это должно быть c:\minGW;c:\minGW\bin. (Установите PATH перед открытым затмением)

Следовательно, libstdc++-6.dll, необходимых текущей программе, не найдено.

В eclipse нет ошибки, но нет вывода в консоли !!

Его скомпилировать в программу можно считать трюком, но будет работать только для стандартных библиотек.


ваши флаги компоновщика не должен быть установлен как:

-> MinGW C++ Linker (опция)> Command (г ++ -static-libgcc -static-libstdC++)

должен быть установлен здесь :

enter image description here


Я знаю, что в данном случае это не пе в конце << endl написать.
Хороший стиль программирования должен использовать << endl:

cout << "sample text" << endl; 
+0

Я следовал тому, что вы объяснили выше, и это работает , но можете ли вы объяснить разницу между этими двумя решениями. и почему вы сказали, что мое первое решение работает только со стандартными библиотеками? просто любопытно ... –

+0

и как получилось, что вывод программы c был видимым на консоли, а не на программе C++? –

+0

c программы не связаны с 'libstdC++ - 6.dll' –

1

Вы можете просто нужно удалить вывод, используя flush или endl. Попробуйте это:

cout<<"sample text" << endl; 

или

cout<<"sample text" << flush; 
+0

это не всегда требуется. Кажется, есть еще одна проблема. – Algorithmist

+0

Я попробовал, но все та же проблема –

+0

Если вы используете 64-битные версии eclipse, может быть ошибка там, см. [здесь] (http://stackoverflow.com/questions/3443254/eclipse-cdt-using-mingw-does-not-output-in-console) – cpp

Смежные вопросы