Я использую Eclipse-CDT для разработки и компиляции проектов для Linux. В качестве хоста могут использоваться как Linux, так и Windows.
Проект создается как проект Makefile со специальной командой build, поэтому я изменил команду build с make
на нашу специальную команду и командную строку "Build" и "Clean" соответственно. Команда build использует gcc из каталога, не входящего в $PATH
, поскольку весь пакет компилятора находится в системе управления версиями. (Правильный $PATH
устанавливается командой сборки.)
Это прекрасно работает в Linux: Eclipse автоматически изучает символы и включаемые файлы.
Однако в Windows символы распознаются, а пути включения - нет.
Когда я смотрю в сгенерированный файл MyProject.sc в каталоге workspace/.metadata/.plugins/org.eclipse.cdt.make.core
, я вижу, что включаемые файлы распознаются, но с добавлением C:\cygwin
.
В командной строке GCC используются абсолютные пути без буквы диска.
(Все дерево исходных текстов находится на специальном диске (например, W:
), CWD находится на этом диске).
Например. gcc
/ g++
вызывается с помощью -I /net_libs/lib1/inc
, и Eclipse распознает C:\cygwin\net_libs\lib1\inc
.
Кстати: пути стандартного включения распознаются правильно (например, W:/toolchain/win32/i686-pc-linux-gnu/include/c++/4.2.1
).
Build-Directory установлен на каталог Makefile, который находится на том же диске, что и Sources, и включает в себя.
Я пробовал различные настройки "Toolchain" (Cygwin, MinGw, Linux gcc), результат каждый раз один и тот же. (После изменения настроек я даже остановил Eclipse, удалил файл sc и снова запустил Eclipse).
Я не знаю, почему Eclipse знает о моей установке Cygwin в C: \ Cygwin - установка НЕ используется компилятором или связанными инструментами.
Когда я вручную изменяю файл .sc, исправляю пути и перезапускаю Eclipse, все работает нормально.
У вас есть какие-нибудь подсказки, в чем может быть проблема?