Russian Qt Forum
Ноябрь 23, 2024, 12:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Проблемы при работе с Eclipse SDK  (Прочитано 23661 раз)
Cyrax
Гость
« : Сентябрь 28, 2006, 11:59 »

Попытка билдинга проекта в Eclipse завершается ошибками:

make -k all
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
Incorrect command line argument: -k

Syntax: MAKE [options ...] target
    ...
    -K                Keeps (does not erase) temporary files created by MAKE
    ...
Build complete for project test_2

При сборке вручную (make -k all) никаких проблем не возникает...

Доп.:     Крутой
1. Опция Build Automatically запускает процесс пересборки проекта перед каждым запуском ?
2. Читал, читал help, так и не понял до конца, чем отличается managed project от standart project... Тем, что в standart project нужно указывать готовый makefile, который будет использоваться для билдинга, а в managed project он создаётся командой make (в данном случае) в начале 1-го билдинга ?
Записан
Вудруф
Гость
« Ответ #1 : Сентябрь 28, 2006, 12:55 »

А ты тот make используешь. Eclipse у тебя (судя по сообщению) пытается вызвать Borland'овский make, а тебе скорее всего нужен mingw32-make
Записан
Cyrax
Гость
« Ответ #2 : Октябрь 01, 2006, 13:37 »

Вот, млин, не заметил... Действительно вызывает Borland'овский...
У меня Qt'ные бинарники прописаны в локальных переменных среды. Добавил Qt'ный bin в глобальный path (на первое место) - ситуация повторилась (опять вызывает Borland'овский make). В то же время у меня в Qt'ном bin - батник (make.bat), вызывающий mingw32-make.
Напрашивается вывод, что Eclipse не дружит с bat-никами.
Ну ладно, прямо указал в свойствах проекта mingw32-make. Всё пошло...

Таким образом, вопрос:
1. Как Eclipse подружить с батниками ?

2.Что за странный managed project... Искал, где прописываются includ'ы - нигде нет. Создал standart project - появились соответствующие пункты в свойствах... Что - в managed project нельзя includ'ы прописывать ?

добавлено спустя 16 часов 36 минут:

 Впрочем, Include Paths & Symbols и Project Paths (для прописки includ'ов) для прописки Qt-ных исходников и не нужны (для Standart C++ Project). Поскольку в Standart Project makefile нужно создавать самому. А в makefile qmake'ового производства все Qt'ные include'ы прописаны. И Eclipse берёт все include-пути из этого makefile'а.
Сложнее дела обстоят с Managed Project (кто-нибудь объяснит, что это за загадочный проект такой, пока я не удавился !: ). Здесь makefile создаёт сам Eclipse (как и чем - непонятно...). И в этом makefile'е, естественно, никаких путей не прописано. Пытался прописывать пути и в Include Paths & Symbols, и в Project Paths - всё-равно не может найти Qt'ные либы. Видит их только у себя под носом - в одной папке с проектом.

добавлено спустя 7 часов 32 минуты:

 Страшная запарка с конфигурациями.
Создал debug-конфигурацию, указал exe'ник из каталога debug. При запуске Run->Debug выходит очень информативное сообщение:

Error creating session: Exec error:Launching failed

Сразу всё понятно стало...
Может быть, на вкладке Debugger этой конфигурации что-то не так:
Debugger: - ну, здесь, наверное, Cygwin GDB Debugger ставить надо, т.к. у меня MinGW стоит. (Другие варианты: GDB Debugger и GDB Server. Что это - неизвестно, в help'е ничего нет...)
Debugger Options:
   GDB Debugger - стоит gdb
   GDB command file - пусто (что это такое - опять неизвестно...)
Вот и вся вкладка Debugger.
В свойствах проекта текущая конфигурация - debug. В каталоге debug проекта exe'ник имеется.
В чём проблема - непонятно...

добавлено спустя 14 часов 29 минут:

 Тьфу, блин, совсем уже крыша едет. gdb то у меня не стоял...
Записан
Cyrax
Гость
« Ответ #3 : Октябрь 02, 2006, 16:51 »

1. Со Standart Project (это где makefiles создаёшь сам) такая проблема:
Создал проект, создал makefile'ы. В Eclipse сбилдил, получил дебажный и релизный exe'ники.
Дальше создаю run-конфигурацию. Указываю релизный exe'ник. В ответ получаю:
Program is not a recognized executable
Указываю дебажный exe'ник - то же самое.
И вообще никакие exe-ники не принимает...
С debug-конфигурацией то же самое.

С Managed Project таких проблем не возникало.

2. И вообще, неплохо было бы услышать совет тех, кто юзает Eclipse, по поводу того, с каким проектом лучше работать - Standart или Managed...
В Managed приходится вручную прописывать все Qt'ные пути.
В Standart приходится вручную создавать файл проекта и make-файлы после добавления/удаления файлов из проекта.

3. И как изменить ключи компиляции (для g++), указанные в свойствах проекта (Managed С++ Project). По умолчанию ставится: -O3 (-g3 для debug) -Wall -c -fmessage-length=0 и изменять их нельзя...
Записан
SLiDER
Гость
« Ответ #4 : Октябрь 03, 2006, 15:22 »

Цитата: "Cyrax"
И вообще, неплохо было бы услышать совет тех, кто юзает Eclipse


Я вот читаю и никак не могу понять, вы Qt проекты собираете в eclipe или обычные сишные.
Если Qt,  то зачем самому писать makefiles, если есть qmake? По поводу Qt проектов, можно поискать по форуму, здесь была тема как четверку прикрутить к eclipse без посторонней помощи (через maketargets), но это весьма неудобно. Я же пользуюсь плагином одного очень хорошего человека -> http://artis.imag.fr/~Xavier.Decoret/resources/qt/eclipse, он хоть и не слишком многофункционален, но очень сильно облегчает жизнь, да и вроде обещает дальнейшее развитие, советую попробовать.
Если же имеются ввиду обычные проекты, то конечно, проще пользоваться managed project, т.к.  сборкой тогда будет управлять, встроенный в eclipse, ant. Все настройки проекта в этом случае находятся в Project -> Properties, в т.ч. и пути к заголовочным файлам.

Цитировать
В Managed приходится вручную прописывать все Qt'ные пути.

А вы считаете он сам за вас их додумывать будет. А потом почему все, одного вполне достаточно.  Веселый

Цитировать
В Standart приходится вручную создавать файл проекта и make-файлы после добавления/удаления файлов из проекта.

Конечно, на то он и не managed.  Веселый

Цитировать
И как изменить ключи компиляции (для g++), указанные в свойствах проекта (Managed С++ Project). По умолчанию ставится: -O3 (-g3 для debug) -Wall -c -fmessage-length=0 и изменять их нельзя...

Гммммм. А вы когда нибудь здесь -> Project -> Properties бывали?

Цитировать
В Eclipse сбилдил, получил дебажный и релизный exe'ники.
Дальше создаю run-конфигурацию. Указываю релизный exe'ник. В ответ получаю:
Program is not a recognized executable

А вы уверены, что файлы реально создались, то есть, что сборка прошла без ошибок? Проверьте ручками.
Записан
Cyrax
Гость
« Ответ #5 : Октябрь 05, 2006, 23:25 »

Проекты - Qt'ные, а самостоятельное написание makefile'ов - садомазо (приятно с бодуна)

В общем то Qt4 прикрутил через maketargets. Всё работает - и автозавершение, и фолдинг. Тормоза, правда, нехилые, но стерпеть можно.
Так вот, чем это неудобно ?
Цитировать

А потом почему все, одного вполне достаточно

include/QtGUI ?
Как насчёт QtNetwork, QtOpenGL и др.?

Теперь насчёт плагина. Что означает QMAKEFEATURES ?
И нужно ли вручную прописывать include'ы для плагина ?

Цитировать

Проверьте ручками

Всё, ручками забубенил PE Windows Parser...
Записан
SLiDER
Гость
« Ответ #6 : Октябрь 06, 2006, 00:10 »

Цитата: "Cyrax"
include/QtGUI ?
Как насчёт QtNetwork, QtOpenGL и др.?


В Qt начиная с четвертой версии появилось два способа подключать заголовочные файлы:
1. #include<qapplication.h> или #include<Qt/qapplication.h> и тогда прописываете в IDE только путь %QTDIR%/include/Qt или %QTDIR%/include, соответственно.
2. #include<QtGUI/QApplication> и тогда прописываете в IDE только путь %QTDIR%/include.

Первый на данный момент считается deprecated, и реализован только для поддержки старого софта портируемого с Qt 3.x.x, так что лучше пользоваться вторым.

Цитата: "Cyrax"
Теперь насчёт плагина. Что означает QMAKEFEATURES ?

А это откуда?

Цитата: "Cyrax"
И нужно ли вручную прописывать include'ы для плагина ?

Что значит "include'ы для плагина"? Всмыле для проекта? Конечно. Иначе откуда он их возьмет?
Записан
Dendy
Гость
« Ответ #7 : Октябрь 06, 2006, 00:27 »

Ето плохой способ.
Код:
#include <QtGui/QApplication>


Префикс оставлен просто для разделения модулей оп отдельньІм папкам. Ето никак не означает, что так и нужно писать:

Код:
#include <Model/Class>


КлассьІ в Qt уникальньІ, никаких конфликтов внутри библиотеки нет и не будет. Правильно, как сказал Cyrax, прописьІвать пути ко всем модулям:

Код:
include/QtCore
include/QtGui
include/QtNetxork
...


Есть множество вещей, которьІе должньІ бьІть реализуемьІ не на уровне исходного кода, а на уровне параметров компилляции. ДанньІй случай - один из них.
Записан
SLiDER
Гость
« Ответ #8 : Октябрь 06, 2006, 00:41 »

Цитата: "Dendy"
Ето плохой способ.
Код:
#include <QtGui/QApplication>


Префикс оставлен просто для разделения модулей оп отдельньІм папкам. Ето никак не означает, что так и нужно писать:

Код:
#include <Model/Class>


КлассьІ в Qt уникальньІ, никаких конфликтов внутри библиотеки нет и не будет. Правильно, как сказал Cyrax, прописьІвать пути ко всем модулям:

Код:
include/QtCore
include/QtGui
include/QtNetxork
...


Есть множество вещей, которьІе должньІ бьІть реализуемьІ не на уровне исходного кода, а на уровне параметров компилляции. ДанньІй случай - один из них.


Хмммм. Возможно вы в чем-то и правы, но в любом случае это дело вкуса. Невижу чем этот способ плох. И не очень понимаю, почему это чуть ли не единственный вопрос, который так сильно волнует Cyrax-а.
Записан
Cyrax
Гость
« Ответ #9 : Октябрь 06, 2006, 11:51 »

1. QMAKEFEATURES - это в Preferences -> Qt. Что там указывать ?
2. Раз мы указываем плагину QTDIR (там же), почему бы ему самому не прописать Qt-header'ы... Или по принципу "только то, что надо"...
3. Как я понял, плагин не использует qmake для создания файла проекта...
Подсветки синтаксиса для файла проекта нет...
Записан
SLiDER
Гость
« Ответ #10 : Октябрь 06, 2006, 12:38 »

Цитата: "Cyrax"
1. QMAKEFEATURES - это в Preferences -> Qt. Что там указывать ?

Ааааааа, вы об этом, как-то не обратил сразу на это внимание т.к. сам этим не пользуюсь (хотя может и зря). Это путь к каталогу содержащему так называемые users features. Подробнее о них смотрите в Assistant -> qmake Manual -> qmake Advanced Usage -> Adding New Configuration Features. В вашем случае можно туда вообще ничего не писать.  Веселый

Цитата: "Cyrax"
2. Раз мы указываем плагину QTDIR (там же), почему бы ему самому не прописать Qt-header'ы... Или по принципу "только то, что надо"...

Гммм. Ну допустим прописать пути к заголовочным файлам, в данном случае вы можете и в *.pro файле, и в IDE и займет это одну минуту. А потом какие всетаки пути нужно прописывать, откуда плагин это должен знать (%QTDIR%/QtGUI, %QTDIR%/QtNet, а может быть еще чего). Прописывать все пути не совсем правильный (ИМХО) путь, т.к. они, может, вам и не нужны вовсе. А вообще это вопрос к автору плагина. Кстати, вижуальный интегратор пути к инклюдам и либам сам тоже не прописывает.

Цитата: "Cyrax"
3. Как я понял, плагин не использует qmake для создания файла проекта...

При создании проекта, создается простенький шаблонный *.pro файл, который является основой для buildera, т.е. при дальнейшей разработке проекта от вас требуется только подправлять данный файл в соответствии с внесенными в проект изменениями. На мой взгляд это разумный компромис.


Цитата: "Cyrax"
Подсветки синтаксиса для файла проекта нет...

(а это тогда что -> Preferences -> Qt->QMake Editor?) Есть. Мало того, он (плагин) следит за изменением этого файла и сам вызывает qmake при его сохранении.
Записан
Cyrax
Гость
« Ответ #11 : Октябрь 08, 2006, 17:04 »

1. Не работает фолдинг в Qt-проекте (в других работает). Что это - глюк ?

2. Файл проекта запускается только в Text Editor. При попытке запустить его в QMake editor - появляется пустая вкладка "QMake editor". При этом, при открытии двойным кликом, выходит сообщение:

An error has occured. See error log for more details.

(подсветки, естественно, никакой не будет, пока глюк не будет профиксен (если это глюк)...)

3. Плагин не создаёт makefile'ы ни в процессе билдинга, ни вообще никогда. Возможно, из-за п. 2...

Крутой
Записан
SLiDER
Гость
« Ответ #12 : Октябрь 08, 2006, 17:29 »

Цитата: "Cyrax"
1. Не работает фолдинг в Qt-проекте (в других работает). Что это - глюк ?

В смысле в файле проекта (*.pro) или в фалах проекта (*.cpp,*.h ...)?
Если в файле проекта (*.pro) то ->
Код:
Фолдинг в eclipse  сам по себе не появляется, его нужно реализовывать для каждого языка отдельно. В данном случае его просто нет.

Если в фалах проекта (*.cpp,*.h ...) то ->
Код:
Возможно он просто у вас выключен по умолчанию, попробуйте нажать Ctrl+* (* -> звездочка на numpad-е), и включить его в Window -> Preferences... -> C/C++ -> Editor -> Folding -> Enable folding when opening a new editor.


Цитата: "Cyrax"
2. Файл проекта запускается только в Text Editor. При попытке запустить его в QMake editor - появляется пустая вкладка "QMake editor". При этом, при открытии двойным кликом, выходит сообщение:

An error has occured. See error log for more details.

(подсветки, естественно, никакой не будет, пока глюк не будет профиксен (если это глюк)...)

Похоже глюк, но у меня он не наблюдается, ни в винде, ни в линуксе. В обоих системах работаю с eclipse 3.2.0 и CDT 3.1.0. А какая версия среды и плагинов у вас?

Цитата: "Cyrax"
3. Плагин не создаёт makefile'ы ни в процессе билдинга, ни вообще никогда. Возможно, из-за п. 2...

Крутой

Скорее всего.
Записан
Cyrax
Гость
« Ответ #13 : Октябрь 08, 2006, 19:45 »

1. Конечно cpp...
Судя по описанию комбинации Ctrl+* она должна раскрывать "зафолденный" фрагмент, у меня же всё было раскрыто и плюсиков справа не было... Enable folding when opening a new editor стоял (его я и мучал)...
Впрочем сейчас всё заработало. Может, глюк (перезагрузку Eclipse'а делал). С PE Windows Parser тоже не сразу всё пошло...

2. Попыхчу ещё с QMake Editor'ом.
Версии: Eclipse 3.1.1, CDT 3.0.2.

3. В процессе билдинга какие команды предшествуют
mingw32-make -o Makefile (по умолчанию)
У меня билдинг начинается с этого make'а...
Записан
SLiDER
Гость
« Ответ #14 : Октябрь 08, 2006, 20:30 »

Цитата: "Cyrax"
1. Конечно cpp...
Судя по описанию комбинации Ctrl+* она должна раскрывать "зафолденный" фрагмент


Не совсем так или, лучше, совсем не так.  Веселый Эта комбинация показывае и скрывает полоску слева, на которой этот фолдинг, собственно, и отрисовывается.

Цитата: "Cyrax"
2. Попыхчу ещё с QMake Editor'ом.
Версии: Eclipse 3.1.1, CDT 3.0.2.


Советую все же обновиться, ибо: "This plugin has been tested with Eclipse 3.1.2 and CDT 3.0.2."

Цитата: "Cyrax"
3. В процессе билдинга какие команды предшествуют
mingw32-make -o Makefile (по умолчанию)
У меня билдинг начинается с этого make'а...


В идеале, если *.pro файл не содержит ошибок, то после его сохранения плагин сам запустит qmake и создаст для вас makefile-ы, следовательно вам останется только вызвать Build, который, в свою очередь, естественно, будет вызывать make.
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.118 секунд. Запросов: 21.