Перейти к содержанию
    

Вопросы по Eclipse, CDT, Zylin embedded CDT

gentoo B) т.е. eclipse самосборный.

 

Подозреваю что починилось после обновления SWT до 3.5.1

Изменено пользователем Terminator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Весь уже изгуглился, не нашёл нормального решения. Как прилинковывать ресурсы с относительным путём?

 

То есть, у меня есть папка PROJECTS, в ней папка, скажем LIBS, общая на все проекты, и папки проектов. Хочу в каждый проект прилинковать папку ../LIBS, но никак не изобрету как. Через переменную среды (Path variable) - почти нормальное решение, но она требует абсолютного пути, а они разные на разных машинах. Поделитесь опытом, кто как делает?

 

И вообще, никак не вырисовывается у меня в голове стройная картина, как же использовать эту эклипсу:) Вот что это за воркспейcы такие? Где их место в моей иерархии? Как мне делать, по воркспейсу на каждый проект, или по воркспейсу на каждое семейство контроллеров?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, у меня есть папка PROJECTS, в ней папка, скажем LIBS, общая на все проекты, и папки проектов. Хочу в каждый проект прилинковать папку ../LIBS, но никак не изобрету как. Через переменную среды (Path variable) - почти нормальное решение, но она требует абсолютного пути, а они разные на разных машинах.
Project->Propertities->C/C++ General-> Paths and symbols->Include->GNU C/C++ ->../../common и снять галочку is a workspace path
Как мне делать, по воркспейсу на каждый проект, или по воркспейсу на каждое семейство контроллеров?
скорее первое. Если в проекте несколько контроллеров и всякие писишные утилиты - их в этот же воркспейс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Project->Propertities->C/C++ General-> Paths and symbols->Include->GNU C/C++ ->../../common и снять галочку is a workspace path

 

Да, сейчас так и сделано. Но в этом случае эклипс не находит функции, находящиеся в ../../common. И ошибки в этих файлах не показывает.

Хотя может это у меня что-то просто сбилось.

 

скорее первое. Если в проекте несколько контроллеров и всякие писишные утилиты - их в этот же воркспейс.

 

Если отдельный воркспейс на каждый проект, то приходится его (воркспейс) каждый раз заново отстраивать. Тоже не фонтан... Ох, как же трудно менять средства разработки:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, сейчас так и сделано. Но в этом случае эклипс не находит функции, находящиеся в ../../common. И ошибки в этих файлах не показывает.
У меня функции находит. Ошибки не показывает, это да.
Если отдельный воркспейс на каждый проект, то приходится его (воркспейс) каждый раз заново отстраивать. Тоже не фонтан...
Так это... один раз настроить, File->Export->General->Preferences

Создаем новый воркспейс, File->Import->General->Preferences. В той же папке, в которой создали воркспейс создаем папку проекта, копируем в него из существующего .project, .cproject, makefile, редактором в первых двух правим название проекта, File->Import->Existing projects into workspace. Все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если папки типа ../../common добавить к проекту как Linked ресурс, то и функции найдёт и ошибки покажет.

File->New->Folder->Advanced->Link to...

В Paths and symbols специально ничего не добавляю, туда автоматически добавляются только папки с заголовочными файлами из тулчейна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня функции находит. Ошибки не показывает, это да.
Хм... Вот этим мне и не нравится эклипс - слишком он многогранен (если не сказать - монструозен:) ), и потому плохо предсказуем. По ошибке я нашёл как переходить, правая кнопка мыши - open external что-то там. А вот функции находит лишь частично, не подчёркивает их красненьким, то есть знает про них, но по Ctrl+click - не открывает.

За способ копирования проектов - большое спасибо, завтра испытаю.

 

Если папки типа ../../common добавить к проекту как Linked ресурс, то и функции найдёт и ошибки покажет.

 

Так не получается, в этом и беда! Требует абсолютный путь. Я уж что только не подсовывал ему в .project. Не понимает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

функции находит лишь частично, не подчёркивает их красненьким, то есть знает про них, но по Ctrl+click - не открывает.

 

Разобрался. Видимо эклипс немного иначе парсит исходники.

namespace OS
{
    template <>
    OS_PROCESS void TSensorsProcess::Exec()
    {
        adc_init();        // <-- не находит
        ::adc_init();    // <-- а вот так - находит!
...

 

То есть, он считает, что из пространства имён видны только имена, объявленные в этом же пространстве имён (мощно задвинуто:) ). А глобальные - не видны.

Я думаю, что я смогу с этим жить:)

 

А ещё у меня вот такой вопрос. Есть ли возможность назначить make-target-ам горячие клавиши? Или как-то иначе повесить вызов, скажем, make reset на кнопку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли возможность назначить make-target-ам горячие клавиши? Или как-то иначе повесить вызов, скажем, make reset на кнопку?

Window->Show View->Make Targets, правда не кнопки, но есть куда кликать и все цели в одном месте.

Или Вам ещё проще нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Window->Show View->Make Targets

 

Это-то нашёл. Хочется сделать именно клавиатурное сокращение. Привык :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю на будущее при описании проблемы указывать версию eclipse.

У меня установлен Helios M5, проблем с парсингом ошибок и исходников не наблюдаю, системные переменные с путями к проекту и воркспейсу обновляются автоматически при переносе проекта в другое место.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня текущая стабильная версия - eclipse-cpp-galileo-SR1-win32.zip. Helios-M5 - это же development build? Как он, не падает? Надо будет попробовать вечерком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Helios-M5 - это же development build? Как он, не падает? Надо будет попробовать вечерком.

Не то, что не падает, а ведёт себя намного стабильнее.

Под Linux, в отличие от Galileo, все кнопки работают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поставил Helios-M5. Никаких изменений (кроме заставки) пока не заметил:)

Точно так же не видит из namespace внешнюю функцию:

void test_one()
{
    PB0.On();
}

namespace OS
{
    void TSensorsProcess::Exec()
    {
        test_one();        // <- вот отсюда по Ctrl+Click - не переходит на функцию test_one();
        ::test_one();    // <- если сделать так, то переходит:)
    }

    void test()
    {
        test_one();        // <- и вот отсюда - переходит.
                    // то есть, проблема только с функциями-членами.
    }
}

 

Ну с остальным я вроде освоился, даже поотлаживался по шагам. Баловство всё это, но приятно:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AHTOXA, только что проверил приведенный Вами пример.

Во всех случаях подчёркивает, показывает, переходит.

Что Вы такого делаете, чтобы не работало? :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...