crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

JustOneQuestion
  опции профиля:
сообщение 7.5.2015, 11:20
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 7.5.2015
Пользователь №: 4379

Спасибо сказали: 0 раз(а)




Репутация:   0  


Приветсвуйю людей знающих, опытных и отзывчивых.
С Qt впервые столкнулся после приобретения узко-специализированного устройста, библиотеки работы с которым были под Qt. С библиотеками шёл простой пример. Собственно одна папка с файлами *.c *.cpp *.h *.dll *.a, файлов .pro .lib и каких либо проектов нет. В reedme предлагалось запустить примемр через строку
g++ file1.c file2.c file3.cpp -l:libUSTROYSTVO.a -o result.exe (я в ней названия поменял, для удобства. Main в file3.cpp находится если это важно)
ОС Windows 8.1, скачал и поставил Qt 5.4.1 for Windows 32-bit (MinGW 4.9.1, 856 MB) ( www.qt.io/download-open-source/ )
И через Qt 5.4 for Desktop (MinGW 4.9 32 bit) (ярлык в "меню пуск".. в плитках) запустил (вроде как) аналог cmd.exe (с батником который переменные среды прописывает) и в нем (находясь в директории с файлами примера) использовал
g++ file1.c file2.c file3.cpp -l:libUSTROYSTVO.a -o result.exe
Всё хорошо, без ошибок, получился екзешник примера, который вполне себе работает как нужно.

Но попробовав создать проект в QtCreator и добавить в него файлы примера, чтобы работать в IDE(мне так прривычнее... уж простите если это не по православному... я не в курсе был :) ), у меня на этапе сборки проекта вылезло множество ошибок. В качестве примера создания проекта я использовал Empty Qmake Project.

Не важно, вобщем-то, что за ошибки вылезли, главное мне хотелось бы понять, почему и как исправить то, что через командную строку всё работает, а через QtProject нет(пока)? Как правильно создать проект, который бы точно также реагировал на код как и командная строка...?

Всем, кто не поленился это прочитать, спасибо и всего вам хорошего.


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
JustOneQuestion
  опции профиля:
сообщение 20.5.2015, 17:11
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 7.5.2015
Пользователь №: 4379

Спасибо сказали: 0 раз(а)




Репутация:   0  


Так, если я правильно понял, то верятно разница между С и С++ вот в этих строках.
CFLAGS = -pipe -fno-keep-inline-dllexport -O2 -Wall -Wextra $(DEFINES)
CXXFLAGS = -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -mthreads $(DEFINES)
Просто дальше, когда используется $(CXX) $(CC) то они везде используются одинаково за исключением флагов.
Например
$(CC) -c $(CFLAGS) $(INCPATH) -o release\file1.o ..\file1.c
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

А вот в qmake.conf в win32-g++ Есть вот такое.

QMAKE_CFLAGS = -pipe -fno-keep-inline-dllexport
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall -Wextra
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections
QMAKE_CFLAGS_SSE2 = -msse2 -mstackrealign
QMAKE_CFLAGS_SSE3 = -msse3
QMAKE_CFLAGS_SSSE3 = -mssse3
QMAKE_CFLAGS_SSE4_1 = -msse4.1
QMAKE_CFLAGS_SSE4_2 = -msse4.2
QMAKE_CFLAGS_AVX = -mavx
QMAKE_CFLAGS_AVX2 = -mavx2
QMAKE_CFLAGS_NEON = -mfpu=neon

QMAKE_CXX = $${CROSS_COMPILE}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_CXXFLAGS_CXX11 = -std=c++0x
QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS

Там конечно ещё много чего. Но если четсно, то не сочтите за ленивость, но мне важно чтобы дейвас заработал и я код мог для НЕГО написать... а вот разбираться во всех параметрах всёже немного не моя область. Пока что проблем с проектом у меня нет, и я пожалуй до следущих проблем :) отложу свой интузиазм копания в настройках Qt.
Однако, если есть вопросы, касательно моего кода.. всмысле ТАКОГО кода, который работает в командной строке и QtCreator по разному, то вы спрашивайте, предлагайте что хотите проверить и какие стоят где настройки. Может это кому-то окажется полезным. Буду рад.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.5.2015, 23:37
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(JustOneQuestion @ 20.5.2015, 18:11) *
Так, если я правильно понял, то верятно разница между С и С++ вот в этих строках.
CFLAGS = -pipe -fno-keep-inline-dllexport -O2 -Wall -Wextra $(DEFINES)
CXXFLAGS = -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -mthreads $(DEFINES)
Просто дальше, когда используется $(CXX) $(CC) то они везде используются одинаково за исключением флагов.
Например
$(CC) -c $(CFLAGS) $(INCPATH) -o release\file1.o ..\file1.c
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

Все просто: $(CXXFLAGS) - флаги компилятора С++, так как CXX - это С++, по сути, а CFLAGS - флаги С, соответственно.

Цитата(JustOneQuestion @ 20.5.2015, 18:11) *
Там конечно ещё много чего. Но если четсно, то не сочтите за ленивость, но мне важно чтобы дейвас заработал и я код мог для НЕГО написать... а вот разбираться во всех параметрах всёже немного не моя область. Пока что проблем с проектом у меня нет, и я пожалуй до следущих проблем :) отложу свой интузиазм копания в настройках Qt.
Однако, если есть вопросы, касательно моего кода.. всмысле ТАКОГО кода, который работает в командной строке и QtCreator по разному, то вы спрашивайте, предлагайте что хотите проверить и какие стоят где настройки. Может это кому-то окажется полезным. Буду рад.

Вот гадом буду, если ошибусь во мнении, но, на мой взгляд, оно будет у всех отвечающих форумчан! ;) Сам по себе код никому из форумчан лично нафиг не нужен. Если Вам хотелось бы разобраться, где ошибка или Вам необходимо это сделать, то приведите точный Makefile, который Вы используете. Чуток разъясните структуру проекта по Qt Creator - для примера, желательно, чтобы он был предельно простым: с наворотами уже позднее стоит разбираться. Если же Вам это не нужно, то маловероятно, что кому-то будет интересно разбираться в Ваших ошибках! ;) Только если, у этого кого-то не будет похожей задачки! ;) :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 22:14