crossplatform.ru

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

> QtCreator vs CMD.exe, Разница в работе
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 нет(пока)? Как правильно создать проект, который бы точно также реагировал на код как и командная строка...?

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


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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Извиняюсь, что пропал.
Цитата(JustOneQuestion @ 13.5.2015, 13:53) *
Где написано что все файлы проекта должны быть одного типа?...Почему g++ умеет работать с разными типамиа QtCreator нет?
Собственно поэтому я и хотел, чтобы в Makefile была найдена результирующая строка, чтобы увидеть какие опции скармливаются компилятору.

Цитата(JustOneQuestion @ 11.5.2015, 16:41) *
Я не понимаю что нужно искать. Поясните пожалуйста.Но строку типа "g++ ......" я не видел ни в одном из этих файлов.
строки типа g++ ... не найдёшь, т.к. компилятор присваивается переменной, и далее она используется:
CC            = gcc
CXX           = g++

т.е искать нужно:
$(CXX) ...
или
$(CC) ...

qmake генерит Makefile на основе правил указанных для конкретного компилятора в папке %QTDIR%/mkspecs/<компилятор>
Для MinGW это обычно папка %QTDIR%/mkspecs/win32-g++
посмотри там файл qmake.conf
для qmake существуют переменные управляющие генерацией Makefile ты увидишь их в qmake.conf

А вообще для успешной сборки смешанного Си/С++ проекта, нужно в заголовочниках указывать компилятору как декорировать имена:
extern "C" {...}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 27.12.2024, 6:37