Вопрос по eclipse, c++ – Как бороться с Eclipse CDT + Cygwin?

8

Недавно я установил Eclipse Indigo Service Release 2 (для JAVA EE) и установил CDT 8 онлайн. Затем я установил Cygwin с gcc, g ++, gdb, make, binutils, automake и т. Д. В последней версии. Я также сделал переменную среды ПУТЬ правильная.

Создание нового проекта C ++ (с использованием набора инструментов Cygwin GCC) просто отлично, но после ввода программы HelloWorld, он показывает много ошибок и предупреждений.

При использовании внешнего компоновщика по ошибке отображается

"Невозможно запустить программу" make ": ????????? ¨?".

При использовании внутреннего компоновщика, в заключение он показывает

"g ++ -IC: \ cygwin \ lib \ gcc \ i686-pc-cygwin \ 4.5.3 \ include \ c ++ -O0 -g3 -Wall -c -fmessage-length = 0 -o src \ test_cpp.o .. \ ЦСИ \ test_cpp.cpp

Ошибка: не удается запустить программу "g ++": ????????? ¨?

Произошла ошибка сборки, сборка остановлена

В Windows CMD и Cygwin Terminal, g ++ и заставить оба работать хорошо.

Более того, Eclipse не может найти включающие библиотеки, поэтому мне нужно добавить путь C: \ cygwin \ lib \ gcc \ i686-pc-cygwin \ 4.5.3 \ include \ c ++ к свойствам проекта-> C / C ++ Building-> Settings. Но после этого по ошибке все равно показывает,

'std' неоднозначно '

Недопустимая перегрузка 'endl'

Символ 'cout' не может быть решен

В свойствах проекта-> C / C ++ Building-> Параметры обнаружения я установил для области профиля обнаружения значение «Общая настройка», а для профиля обнаружения - «GCC» для каждого информационного профиля сканера файлов.

Когда вы создали новый проект, выбрали ли вы cygwin toolchain? dbrank0
Да, но все равно не работает. user1377046

Ваш Ответ

6   ответов
6

прежде всего установить Cygwin со следующими пакетами:

binutils
gcc
gcc-core
gcc-g++
gcc-mingw-core
gcc-mingw-g++
make

Добавлять%cygwin%\bin в переменную окружения PATH, затем откройте Eclipse, и при открытии нового мастера проектов c / cpp будет показана цепочка инструментов Cygwi

4
2

В настройках:'Project|Properties|C/C++ General|Indexer', Я не проверял'Allow heuristic resolutions of includes' и сохранили настройки. После восстановления все мои ошибки типа '' std 'неоднозначны ...' исчезли.

2

Щелкните правой кнопкой мыши на своем проекте, Свойства, вкладка C / C ++, Настройки, вкладка Двоичные парсеры, выберите PE Windows Parser, если вы используете ОС Windows или Elf Parser для ОС Linux.

0

с помощью eclipse + CDT + cygwin-gcc.

Наверное, ты пропустил несколько шагов с 3 по 7.

Установите Cygwin с пакетамиbinutils,gcc-core, gcc-g++, gdb а такжеmake. Я раньше не посылал никаких пакетов. Поэтому я установил пакеты после установки Cygwin. Вы можете установить их, перезапустив программу установки cygwin (пункт 3 в этот ответ) или используяapt-cyg как описано в этот ответ:InstallCDT плагин в затмении или установкеCDT затмение. Установить окнаpath переменная окружения для включения Cygwin bin C:\Program Files\cygwin\setup\bin) и lib C:\Program Files\cygwin\setup\lib) пути к каталогам. Установить окнаclasspath переменная окружения для включения пути к каталогу lib в cygwin. Выполнить командыgcc,g++,gdb а такжеmake в командной строке Windows, чтобы проверить, доступны ли установленные пакеты cygwin и не дают ли команда команду not found. Дляgcc,g++ а такжеmake, он должен дать входной или целевой файл не найдена ошибка. Дляgdb, должно начатьсяgdb приглашение, которое вы можете избежать, набравQuit вgdb незамедлительный Начни затмение и делайFile > New > C/C++ Project Выберите C / C ++ Управляемая сборка:
КликNext>. Дайте подходящее название проекта. ВыбратьCygwin GCC в наборе инструментов:

Следует создать новый проект и включить нужные заголовочные файлы из каталога cygwin lib, указанного в переменных среды:
Щелкните правой кнопкой мыши проект, созданный в проводнике проекта>, наведите курсор мыши на Новый в контекстном меню> щелкните Исходная папка. Дай имяsrc в новую исходную папку.
Нажмите правой кнопкой мыши на исходную папку и добавьте новый исходный файл CHelloWorld.c: Щелкните правой кнопкой мыши на проекте и выберите Build Project. Он должен создавать файлы отладки и исполняемые файлы:
Щелкните правой кнопкой мыши на открытом файле c,Run as > Local C/C++ Application. Он должен запустить исполняемый файл, сгенерированный на предыдущем шаге.
0

которую я запускал, - это Фотон (4.8). Я использую Cygwin64 версии 2.10.0 (0.325 / 5/3).

Я создал новый каталог - foo - и добавил в него следующие файлы:

CMakeLists.txt:
set(CMAKE_C_FLAGS "-g -O0")
set(CMAKE_CXX_FLAGS "-g -O0 --std=c++17")
add_executable (foo main.cpp)

Обратите внимание, что "-g -O0" необходимы для отладки на уровне исходного кода.

Main.cpp:
#include <iostream>

using namespace std;

int
main()
{
    cout << "Hello World" << endl;
    auto i = 5;
    cout << i << endl;
}

В каталоге foo я запустил:

cmake.

Затем я открыл затмение.

File-> Import C / C ++ -> Существующий код как проект Makefile

Вперед

Я установил Существующее расположение кода в каталог foo (перейдя по нему)

Это автоматически устанавливает имя моего проекта на foo (вы можете изменить его, если хотите)

В «Toolchain for Indexer Settings» на данный момент установите «none» и нажмите «Finish». Мы исправим это позже.

Теперь на панели «Project Explorer» щелкните правой кнопкой мыши «foo» и перейдите в «Свойства»

Перейти к "C / C ++ Build"

Перейдите в "Редактор цепочек инструментов"

Снимите флажок "Отображать только совместимые наборы инструментов"

В раскрывающемся списке «Текущий набор инструментов» выберите «Cygwin GCC»

Нажмите "Применить и закрыть"

Еще раз, на панели «Project Explorer», щелкните правой кнопкой мыши «foo» и перейдите в «Свойства»

Перейти к "C / C ++ Build"

Перейти в "Окружающая среда"

Убедитесь, что переменная env "CYGWIN_HOME" установлена правильно. Значением по умолчанию является «C: \ cygwin», но это не очень хорошо для меня и вызвало много проблем. В моем случае это был C: \ cygwin64

Нажмите "Применить и закрыть"

Теперь снова щелкните правой кнопкой мыши на проекте foo и выберите «Build Project»

Под foo на панели проекта нажмите main.cpp, чтобы отобразить его. Установите точку останова где-нибудь.

Hit F11

Тебе нужно взять точку останова, установленную ранее.

Надеюсь это поможет

Похожие вопросы