| Сейчас на форуме: zombi-vadim, zds (+4 невидимых) | 
| eXeL@B —› Программирование —› GCC и include | 
| . 1 . 2 . 3 . >> | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 21 октября 2013 17:57 · Поправил: Dart Sergius  · Личное сообщение · #1 С радости что вышел gcc 4.8.1, я сдуру ума взял себе его и поставил. И так как я пишу используя Qt - то естественно захотелось перекомпилить(ну и нужда то что с новым gcc собирается и падает все). Все впринципе проходило хорошо, сконфигурировал , поставил компилить, и тут посыпались веселые приколюхи. Одним словом, make работающий в 2 потока вывалил мне около 8000 строк ошибок. Все село к 1-му файлу: wtypes.h(использовался для ole.h,ole2.h, oleauto.h ...). Там обхявлялись структуры, которые потом использовались. Как бы include был сделан верно везде(местами ничего не перепутано и прочее). Но все равно сыпались ошибки. Добавил флаг -E и увидел всю причину. Этот файл добавлялся препроцессором в самом конце, уже после того как описывались файлы, в которых они использовались. Практически перед "нашим кодом". Ну и естественно, находя вначале тип данных, описаный позже - он возмущался. Неужели все сломали? ах да, система у меня win xp, mingw   | Сообщение посчитали полезным: Abraham | 
| 
 | 
Создано: 21 октября 2013 18:12  · Личное сообщение · #2  | 
| 
 | 
Создано: 21 октября 2013 20:18 · Поправил: deniskore  · Личное сообщение · #3  | 
| 
 | 
Создано: 22 октября 2013 15:27 · Поправил: Dart Sergius  · Личное сообщение · #4 deniskore, код - Qt. Просто с уже готовой сборкой Qt новый компилятор не хорошо сотрудничает. Вот и решил собрать под новый. Qt пока без моих всяких изысканий. Переустановил mingw. Все пути, все прописал, однако опять та же самая история. Могу выложить "подпроект Qt ", который сбоит, и файлы, сгенерированные с аргументом g++ -E , только они под 10 метров вместе весят. Надо на linux перебираться по хорошему. Да все никак не решусь из-за отладчиков... Справился с этим багом. Во всех хедерах от MinGW убрал include <wtypes.h>(он неверно подключался). Оставил только в 1-м модуле, где используется. Дальше пришлось добавить пару include в файлы проекта(странно, хоть сырцы и с сайта Qt скачаны, но баги все равно есть). Но сам баг тот, что если сделать include одного файла в нескольких файлах, то препроцессор вставляет текст зависимости не сразу почему-то. А потом. Надо будет сделать минитест, и если проблема повториться, запостить баг. ![]()  | 
| 
 | 
Создано: 25 октября 2013 08:56  · Личное сообщение · #5  | 
| 
 | 
Создано: 26 октября 2013 02:05 · Поправил: TheNozza  · Личное сообщение · #6  | 
| 
 | 
Создано: 26 октября 2013 02:29  · Личное сообщение · #7  | 
| 
 | 
Создано: 26 октября 2013 03:21  · Личное сообщение · #8 Кстати, посмотри в сторону Qt/C++. Он куда более приятный, удобный и здравый. Бред, без знания с++ невозможно освоить один из фреймворков, который на плюсах базируется. http://www.linux.org.ru/forum/development/9577161 блок кода выглядит вполне логично, приведён не полностью, чтобы можно было судить о его корректности/некорректности. http://www.rsdn.ru/forum/flame.comp/5325486.flat#5325486 var list - это не с++ ![]()  | 
| 
 | 
Создано: 26 октября 2013 03:28  · Личное сообщение · #9  | 
| 
 | 
Создано: 26 октября 2013 05:34 · Поправил: TheNozza  · Личное сообщение · #10  | 
| 
 | 
Создано: 28 октября 2013 05:19  · Личное сообщение · #11  | 
| 
 | 
Создано: 08 декабря 2013 02:27 · Поправил: Dr0p  · Личное сообщение · #12  | 
| 
 | 
Создано: 08 декабря 2013 02:30  · Личное сообщение · #13  | 
| 
 | 
Создано: 08 декабря 2013 03:21  · Личное сообщение · #14 reversecode Посмотреть хотел качество кодогенерации. Для линей наверное сгодится  
  | Сообщение посчитали полезным: ARCHANGEL | 
| 
 | 
Создано: 08 декабря 2013 10:22  · Личное сообщение · #15  | 
| 
 | 
Создано: 08 декабря 2013 13:52 · Поправил: reversecode  · Личное сообщение · #16  | 
| 
 | 
Создано: 08 декабря 2013 14:23 · Поправил: int_256  · Личное сообщение · #17 Dr0p пишет: Решил заценить это поделие. Хелловорлд компилит в 80k шлака. -O ничего не даёт. -nodefaultlib и генерится жуть скока фейлов.. Я есчо при загрузке этого говна стал подозревать про его качество. Линуксы этим конпиляться ? вот здесь вам точно стоит подучить матчасть и почитать маны, т.к. гцц отменный компилятор, и из тех 80к "шлака" много лишнего убирается прямыми руками ![]()  | 
| 
 | 
Создано: 08 декабря 2013 16:00  · Личное сообщение · #18  | 
| 
 | 
Создано: 08 декабря 2013 16:39  · Личное сообщение · #19 sendersu пишет: сравнимое с clang? Когда последний раз смотрел сlang, то там был довольно убогий кодогенератор, на уровне древнего msvc или gcc, там фишка в другом, в выводе данных о сборке, примерно так же информативно, как в delphi, что сводит необходимость отладки к минимуму. Gcc тоже не стоит на месте и версия 4.8 переписана на с++, связи с этим ожидается больше патчей, больше хардкора. ![]()  | 
| 
 | 
Создано: 08 декабря 2013 19:46  · Личное сообщение · #20  | 
| 
 | 
Создано: 08 декабря 2013 20:38 · Поправил: Dart Raiden  · Личное сообщение · #21 У GCC, насколько помню, другая проблема - его поддерживают несколько олдскульных бородачей, а новые участники боятся соваться в код. И если с бородачами что-то случится, то никто не будет знать, как оно вообще работает.   | Сообщение посчитали полезным: Dr0p | 
| 
 | 
Создано: 08 декабря 2013 20:46  · Личное сообщение · #22 с таким успехом слово GCC, можно заменить на любое другое, например exelab   | Сообщение посчитали полезным: Dynamic | 
| 
 | 
Создано: 09 декабря 2013 00:03  · Личное сообщение · #23 int_256 > много лишнего убирается прямыми руками Наверное руки длинные должны быть, да ? - обработать десятком файлов из пакета ? Он ваще опенсурсный ? reversecode Качество компиля определяется качеством нэйтивного кода. Я таки понял что за закорючки в атт асме, это нужно для вставок(не инлайн) из пары инструкций. ![]()  | 
| 
 | 
Создано: 09 декабря 2013 00:50  · Личное сообщение · #24 Dr0p пишет: Наверное руки длинные должны быть, да Не особо, просто нужно читать маны, так то и топором нужно уметь пользоваться, иначе ноги отху#чить множно. Пруф в атаче, без какого то напильника, просто пару флажков поставил. На хелловордах качество компилей не проверяют.   0ef1_09.12.2013_EXELAB.rU.tgz - main.rar
![]()  | 
| 
 | 
Создано: 09 декабря 2013 01:05  · Личное сообщение · #25  | 
| 
 | 
Создано: 09 декабря 2013 01:38  · Личное сообщение · #26  | 
| 
 | 
Создано: 09 декабря 2013 01:52  · Личное сообщение · #27 rmn Загрузился гцц пак, сурс с одной тока printf, конпилим без опций "\MinGW\bin\gcc test.c". На выходе получаем ~80k экзешник. Code: 
 > MessageBoxA в буфер чтоле отморфил? На 10-ке NL он много меньше ![]()   c975_09.12.2013_EXELAB.rU.tgz - test.zip
![]()  | 
| 
 | 
Создано: 09 декабря 2013 02:08  · Личное сообщение · #28 > вот здесь вам точно стоит подучить матчасть и почитать маны Мне не нравится си, у него какой то не понятный синтаксис в целом. Ну как вот такую конструкцию не назвать костылями: Code: 
 - накой тут ваще новый тип нужен. Абстракция есть труъ, но в данном случае параноидальная. Код на скрипте не должен быть больше, чем на асме  
![]()  | 
| 
 | 
Создано: 09 декабря 2013 02:08  · Личное сообщение · #29 Dr0p пишет: И это в коде из десятка инструкций, лол. Флажки потыкать и будет другой код, мне лень это делать, речь была о размере. Dr0p пишет: На выходе получаем ~80k экзешник. Ужос, так скомпилить, это нужно постараться. У мну без каких либо опций такая ня не собирается, хз.   d121_09.12.2013_EXELAB.rU.tgz - main.rar
![]()  | 
| 
 | 
Создано: 09 декабря 2013 02:12  · Личное сообщение · #30  | 
| . 1 . 2 . 3 . >> | 
| eXeL@B —› Программирование —› GCC и include | 












 
 Для печати