ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Gleb Kulikov <glebus@asd.iao.ru>
To: community@altlinux.ru
Subject: Re: [Comm] Re: KDevelop не находит QT
Date: Sun, 6 Feb 2005 22:59:16 +0600
Message-ID: <200502062259.17107.glebus@asd.iao.ru> (raw)
In-Reply-To: <4205DE92.9030804@mtu-net.ru>

В сообщении от Воскресенье 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


  reply	other threads:[~2005-02-06 16:59 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-04 21:26 [Comm] " Oleg N. Kayunov
2005-02-04 21:43 ` [Comm] " Arioch
2005-02-05  7:50   ` Michael Shigorin
2005-02-05  9:06     ` Oleg N. Kayunov
2005-02-05  9:09       ` Genix
2005-02-05 11:20         ` Oleg N. Kayunov
2005-02-05 11:39           ` Genix
2005-02-05 13:17             ` Oleg N. Kayunov
2005-02-05 19:20           ` Oleg N. Kayunov
2005-02-06  7:09             ` Gleb Kulikov
2005-02-06  9:08               ` Oleg N. Kayunov
2005-02-06 16:59                 ` Gleb Kulikov [this message]
2005-02-06 20:15                   ` Oleg N. Kayunov
2005-02-07  3:32                     ` Gleb Kulikov
2005-02-07 11:23                       ` [Comm] scons (was: Re: KDevelop не находит QT) Nick S. Grechukh
2005-02-07  0:19               ` [Comm] Re: KDevelop не находит QT Igor Zubkov
2005-02-07 11:58                 ` Gleb Kulikov
2005-02-07 16:13                 ` [Comm] [JT] " Michael Shigorin
2005-02-07 16:39                   ` Gleb Kulikov
2005-02-05  9:06   ` [Comm] " Oleg N. Kayunov
2005-02-07 16:00 ` [Comm] " Eugene A. Suchkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200502062259.17107.glebus@asd.iao.ru \
    --to=glebus@asd.iao.ru \
    --cc=community@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git