Eclipse-CDT: автоматическое обнаружение пути при кросс-компиляции для Linux под Windows - PullRequest
1 голос
/ 10 августа 2010

Я использую 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, все работает нормально.

У вас есть какие-нибудь подсказки, в чем может быть проблема?

1 Ответ

1 голос
/ 29 августа 2010

Посмотрите на Project-> Propterties-> C / C ++ Build-> Discovery Options.
Существует команда вызова компилятора - обычно устанавливается на gcc, что означает "gccДОРОЖКА".Попробуйте установить это для вашего gcc из вашей системы сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...