Вопрос по eclipse, c++ – Как бороться с Eclipse CDT + Cygwin?
Недавно я установил 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» для каждого информационного профиля сканера файлов.
с помощью 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
в новую исходную папку.HelloWorld.c
: Run as > Local C/C++ Application
. Он должен запустить исполняемый файл, сгенерированный на предыдущем шаге.которую я запускал, - это Фотон (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
Тебе нужно взять точку останова, установленную ранее.
Надеюсь это поможет