[Comm] Re: KDevelop не находит QT

Gleb Kulikov =?iso-8859-1?q?glebus_=CE=C1_asd=2Eiao=2Eru?=
Вс Фев 6 19:59:16 MSK 2005


В сообщении от Воскресенье 06 Февраль 2005 15:08 Oleg N. Kayunov написал:
> > проекта KDevelop'а с этим жутким autotools и т.п.: scons проще и удобнее,
> > и таких заморочек не замечено :) (в свойствах проекта, указать custom
> > makefiles и команду "make" как "scons .")

> В каких именно Закладке->Листе именно пункте меню-пункта "Параметры
> проекта" (так?) это указать?
> Пока нашел только "Параметры проекта"->"Параметры make"->"Название
> исполняемого файла make", поставил scons. Но получаю:
> *scons: Reading SConscript files ...
> *File "Makefile.cvs", line 1

Проект -> параметры проекта -> параметры сборки -> 

Вкадка "Собрать":
 [!] Make
 [ ] Ant
Запускать средство сборки в каталоге -- тут пишешь корень проекта, именно тут 
должен лежать Sconstruct.

Вкладка "Make":
 имя исполняемого файла make: "scons ."

Всё. Из того вывода, что ты привёл, такое впечатление, что scons пытается 
читать Makefile.cvs вместо Sconstruct'а, что совершенно не надо делать 
(уверен, что в параметрах scons у тебя стоит точка?).

Понятно, что Sconstruct/SConscript, при таком раскладе, надо делать руками: 
Kdevelop ничего о них не знает.

Для сборки QT программ, SConscript может быть тривиальным, типа

#... что-то делаем, если надо...
#... определяем списки define-ов и т.п., если надо...но нужно указать 
#инструменты qt!, типа

env = Environment(CCFLAGS = defines, LIBPATH = libs, LIBS = ["pthread"], \
tools=['default', 'qt'])
Export('env')

здесь defines и libs -- ранее определённые списки глобальных дефайнов и 
библиотек

# собственно исходники и т.п, указываем в SConscript, который кладём в 
#соответствующий каталог проекта, например
# В SConstruct указываем. где его брать:

#QT-версия интерфейса

SConscript('src/QT/mainwin/SConscript',build_dir='src/QT/mainwin/build/linux',du
plicate=0)

#А в этом SConscript'е  тоже, всё как обычно, только надо указать включаемые 
#каталоги QT, если ранее это не было сделано:

Import('env')
env.Append(CPPPATH="include")

QTDIR="/usr/lib/qt3"
QTINC="/usr/lib/qt3/include"
gui_includes=["/usr/include/qwt","moc/","include","#mainwin"]

qt_includes=[QTDIR+"/mkspecs/default"\
,QTDIR\
,QTINC\
,"#widgets/bld"]

#здесь /usr/include/qwt -- для используемого набора виджетов qwt,
# mainwin -- подкаталог в данном каталоге проекта, в котором файлы, отвечающие
# за главное окно
#widgets -- - подкаталог в данном каталоге проекта, в котором файлы, 
#отвечающие за собственные виджеты, и т.д -- принцип понятен

# практически обязательно определить "стандартные" define'ы
gui_Cflags=["-D_REENTRANT", "-DQT_THREAD_SUPPORT","-D__LINUX__"]

# Ну, даьше, собственно, перечисляем исходники, нужные библиотеки, используем 
# определённые дефайны и собираем программу в подкаталоге exe, лежащем в корне 
дерева проекта (так хочу :)

gui_src = ["windowspectrometermain.ui","pgmain00.cpp"]
gui_libs_For = ["qwt","qt-mt","Xext","X11","m","pthread"]

all_includes = qt_includes+gui_includes

env.Append(CPPPATH=all_includes)

env.Program(target='#exe/qtmain00.exe',build_dir="build/linux",source=gui_src,
CCFLAGS=gui_Cflags\
, 
LIBPATH=[QTDIR+"/lib","/usr/X11R6/lib","/usr/lib","#/libs"],LIBS=gui_libs_For)

всё, у меня работает без проблем, проверено уже не на одном проекте. Кстати, 
быстрее, чем "родной" мэйк.

-- 
      Салют, /GLeb

UIN: 15341920
jabber://gleb@asd.iao.ru
netmail: 2:5005/78



Подробная информация о списке рассылки community