eclipse 4.2 cdt с конфигурацией ubuntu 12.04

Я использую Eclipse CDT (Eclipse v. 4.2) на Ubuntu 12.04. Когда я создаю проект C++ (в разделе Тип проекта -> Исполняемый файл -> Проект Hello World C++) и выбираю цепочку инструментов Linux GCC, стандартное приложение hello world компилируется и работает нормально. Когда я пытаюсь создать пустой проект (из того же меню, что и раньше), выбирая также цепочку инструментов Linux GCC, это приводит к нескольким ошибкам сборки:

   make:***[tst] Error 1
   Symbol 'cout' could not be resolved
   Symbol 'endl' could not be resolved
   Symbol 'std' could not be resolved
   undefined reference to 'main'

Когда я сравниваю настройки пути («Свойства» -> «Сборка C/C++» и «Общие сведения C/C++») для файла .cpp, сгенерированного «Проектом Hello World C++», и для файла .cpp, добавленного в «Пустой проект», у них есть те же конфигурации и настройки, поэтому я не уверен, почему пустой проект не обнаруживает стандартную библиотеку и не компилируется. Все файлы в папке include также одинаковы. Это также происходит при установке Windows 7 (компилятор MingW) и при установке MacOS X. На данный момент я могу просто создавать свои проекты как «проект Hello World C++», избавляться от текста и кодировать то, что я хочу, но мне действительно любопытно, как настроить его с нуля, тем более что я понимаю, что создание «пустого проекта» в папке «Исполняемый файл» (в отличие от создания проекта Makefile) должно включать make-файл и все необходимые пути (если выбран правильный набор инструментов?).

Фактическая ошибка сборки из консоли CDT:

    20:49:26 **** Incremental Build of configuration Debug for project tst ****
    make all 
    Building target: tst
    Invoking: GCC C++ Linker
    g++  -o "tst"  ./src/test.o   
    /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In function `_start':
    (.text+0x20): undefined reference to `main'
    collect2: ld returned 1 exit status
    make: *** [tst] Error 1

    20:49:26 Build Finished (took 62ms)

Код, который я пытаюсь запустить, - это просто код приветствия по умолчанию, созданный eclipse:

   #include <iostream>
   using namespace std;

   int main() {
   cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
   return 0;
   }

Заранее спасибо.


person gos1    schedule 29.07.2012    source источник


Ответы (1)


Я видел, что некоторые DVD-диски с Ubuntu 12.04, продаваемые в журналах, по умолчанию не устанавливают gnu G++. Перейдите в Центр программного обеспечения Ubuntu и установите G++ (цепочка инструментов компилятора GNU C++). После установки щелкните правой кнопкой мыши имя вашего проекта в Eclipse Project Explorer в левой части IDE. Выберите «Перестроить» в разделе «Индекс». Это должно решить проблему с включением iostream и т. д.

person Steve    schedule 03.08.2012