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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как увеличить размер стека приложения  (Прочитано 12269 раз)
agor
Гость
« : Сентябрь 18, 2009, 15:41 »

Не подскажите как увеличить размер стека для всего приложения под Windows.
Я использую QDevelop или QCreator.
На сколько я представляю это опция для компилятора или линковщика, которая должна быть указана make файле?
Записан
KADABRA
Гость
« Ответ #1 : Сентябрь 18, 2009, 16:26 »

Не подскажите как увеличить размер стека для всего приложения под Windows.
Я использую QDevelop или QCreator.
На сколько я представляю это опция для компилятора или линковщика, которая должна быть указана make файле?
google://mingw stack size
Записан
agor
Гость
« Ответ #2 : Сентябрь 18, 2009, 17:01 »

Спасибо. Вот нашел замечательные строчки
gcc -Wl,--stack=<STACK_SIZE>
Еще бы понять куда и как их в make файл вставить. И по-моему, когда я из среды запускаю перестроить проект, запустится qmake, который перезапишет Makefile, им же и руководствуется компилятор и линковщик.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Сентябрь 18, 2009, 18:39 »

В файл проекта (pro-файл)
для gcc:
QMAKE_CFLAGS += ....

для g++:
QMAKE_CXXFLAGS += ....


Полезно взглянуть на содержимое файла:
%QTDIR%\mkspecs\ИмяПлатформы\qmake.conf
, где ИмяПлатформы - для виндавоза и MinGW32 = win32-g++
« Последнее редактирование: Сентябрь 18, 2009, 18:42 от lit-uriy » Записан

Юра.
BRE
Гость
« Ответ #4 : Сентябрь 18, 2009, 18:46 »

Это опция линкера, поэтому скорее всего:
QMAKE_LFLAGS += ...
Записан
agor
Гость
« Ответ #5 : Сентябрь 18, 2009, 19:27 »

Спасибо, уже чувствую что не один Улыбающийся  А есть добрые люди.
вот мой файл из казанного каталога:
Код:
#
# qmake configuration for win32-g++
#
# Written for MinGW
#

MAKEFILE_GENERATOR = MINGW
TEMPLATE = app
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
QT += core gui
DEFINES += UNICODE QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES  += __GNUC__ WIN32

QMAKE_EXT_OBJ           = .o
QMAKE_EXT_RES           = _res.o

QMAKE_CC = gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS =
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses

QMAKE_CXX = g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions

QMAKE_INCDIR =
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]

QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

QMAKE_LINK = g++
QMAKE_LINK_C = gcc
QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl
QMAKE_LFLAGS_EXCEPTIONS_OFF =
QMAKE_LFLAGS_RELEASE = -Wl,-s
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL        = -shared
QMAKE_LINK_OBJECT_MAX = 10
QMAKE_LINK_OBJECT_SCRIPT= object_script


QMAKE_LIBS =
QMAKE_LIBS_CORE         = -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
QMAKE_LIBS_GUI          = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
QMAKE_LIBS_NETWORK      = -lws2_32
QMAKE_LIBS_OPENGL       = -lopengl32 -lglu32 -lgdi32 -luser32
QMAKE_LIBS_COMPAT       = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
QMAKE_LIBS_QT_ENTRY     = -lmingw32 -lqtmain

!isEmpty(QMAKE_SH) {
    MINGW_IN_SHELL      = 1
QMAKE_DIR_SEP = /
QMAKE_COPY = cp
QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
    QMAKE_CHK_DIR_EXISTS = test -d
} else {
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = move
QMAKE_DEL_FILE = del
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
    QMAKE_CHK_DIR_EXISTS = if not exist
}

QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc.exe
QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic.exe
QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe

QMAKE_IDL = midl
QMAKE_LIB = ar -ru
QMAKE_RC = windres
QMAKE_ZIP = zip -r -9

QMAKE_STRIP = strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
load(qt_config)


т.е. как я понимаю или в него или в Makefile проекта добавить строку:
QMAKE_CFLAGS += -Wl,--stack= 32768
 и все будет ...
Записан
BRE
Гость
« Ответ #6 : Сентябрь 18, 2009, 19:32 »

т.е. как я понимаю или в него или в Makefile проекта добавить строку:
QMAKE_CFLAGS += -Wl,--stack= 32768
 и все будет ...

В файл проекта (pro-файл)
Записан
agor
Гость
« Ответ #7 : Сентябрь 18, 2009, 19:53 »

А да, сасибо. Не внимателен. Попробую, о результатах доложу ... Улыбающийся
Записан
agor
Гость
« Ответ #8 : Сентябрь 19, 2009, 21:17 »

Все работает. Программе, действительно, Wind-а стала больше выделять памяти.
Вот, кому интересно фрагмент .pro файла:
Код:
 licensing/regdialogimpl.h \
 src/editdnsimpl.h
QT += network \
 sql \
 xml \
 gui \
 webkit
RESOURCES += ui/mainwinow.qrc
win32:RC_FILE = ui/winmain.rc
QMAKE_CFLAGS += -Wl,--stack= 67108864

Спасибо
 lit-uriy  и BRE за советы...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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