Сейчас на форуме: 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 |