Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
SiemarglНу не так - он должен выругаться об неоднозначности, а не линковать что первое попало. Не должен. Как раз по дизайну он должен брать первое из нескольких имен в порядке указания их библиотек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2017, 19:17 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Siemargldbpatch..бред про ХММ убран... ...а тут ты передаешь over 98 байт, и спрашивается в задаче, кто ССЗБ ? Будь как все, передавай указатель на свою копию в стеке, конечный эффект будет такой-же.Я и передаю по указателю. Какая разница, если выравнивание навернуто. Так так, похоже про thread.join() я соврал - у меня было больше потоков, чем я думал - корректно работает. бред про XMM? ну ну. а так, ты там выше писал дословно: > Структурка передается параметром чужим функциям и соответственно, чувствительна к выравниванию про указатель ты там ничего не писал. путаешься в показаниях? в остальном - ты опять, в 25 раз СЗЗБ. кто мешает выровнять структуру вручную, накидав туда dummy полей нужных длин и типов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2017, 19:38 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglНу не так - он должен выругаться об неоднозначности, а не линковать что первое попало. Не должен. Как раз по дизайну он должен брать первое из нескольких имен в порядке указания их библиотек.Где кстати прописано поведение линкера ? Ты как спец по стандартам, можешь знать ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2017, 20:11 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Илья, я категорически против правки моих постов, даже с благой целью улучшения этого убогого сайта. Ок ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 00:13 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
SiemarglГде кстати прописано поведение линкера ? Ты как спец по стандартам, можешь знать ) Мне лень искать. Но алгоритм выбора функции среди одноименных четко описан. И к стандартам я никакого отношения не имею, а наоборот люблю частные случаи )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 04:20 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
SiemarglИлья, я категорически против правки моих постов, даже с благой целью улучшения этого убогого сайта. Ок ? Он оказал тебе услугу. По джентльменски, не став клеить стикер "Отредактировано". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 10:02 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
SiemarglИлья, я категорически против правки моих постов, даже с благой целью улучшения этого убогого сайта. Ок ? ОК, просто не давай повода... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 12:18 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyМне лень искать. Но алгоритм выбора функции среди одноименных четко описан. В огороде бузина, а в Киеве — дядька. Какое отношение overload resolution имеет к выбору линкером символа из нескольких translation units? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2017, 13:22 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Common LispКакое отношение overload resolution имеет к выбору линкером символа из нескольких translation units? Никакое. Это вы домыслили про перегрузку )) А вот например то про что я говорил: 1) .cpp с функцией f() возвращающей 1 2) .cpp с функцией f() возвращающей 2 с атрибутом weak 3) программа собранная с 1 и 2 Какая из f будет взята четко определено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2017, 06:13 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyКакая из f будет взята четко определено. Лично я ещё с первой своей встречи с С помню, что порядок указания объектных файлов и библиотек в командной строке линкера имеет очень большое значение. Именно потому, что функция берётся из первой встреченной. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2017, 13:28 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Что то у меня не получается воспроизвести, хотя точно был какой то казус D:\VSProjects\ambigui>cl main.cpp tru1.cpp tru2.cpp Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. main.cpp tru1.cpp tru2.cpp Generating Code... Microsoft (R) Incremental Linker Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. /out:main.exe main.obj tru1.obj tru2.obj tru2.obj : error LNK2005: "int __cdecl fnx(void)" (?fnx@@YAHXZ) already defined in tru1.obj main.exe : fatal error LNK1169: one or more multiply defined symbols found D:\VSProjects\ambigui>gcc main.cpp tru1.cpp tru2.cpp E:\windows\TEMP\ccJmDlXv.o:tru2.cpp:(.text+0x0): multiple definition of `fnx()' E:\windows\TEMP\ccnEcvSD.o:tru1.cpp:(.text+0x0): first defined here collect2.exe: error: ld returned 1 exit status ==============вариант с библиотечной ф-цией================= D:\VSProjects\ambigui>gcc main.cpp tru1.cpp atexit2.cpp E:\windows\TEMP\ccCiW5FA.o:atexit2.cpp:(.text+0x0): multiple definition of `atexit' D:/codeblocks-16.01/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../crt2.o:crt1.c:(.text+0x2c0): first defined here collect2.exe: error: ld returned 1 exit status D:\VSProjects\ambigui>gcc --version gcc (tdm-1) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2017, 19:47 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Воспроизводится для С, но не CPP. Причем msvc2003 и gcc работают в этом случае одинаково. Век живи, век учись ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 12:47 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Вот. Как раз повторно наткнулся на грабли 2) Претензии: 1)Полный бордель внутри каталога gcc -include лежат в gcc\include, но для С++ есть своя версия, лежит gcc\lib\gcc\mingw32\4.9.2\include\c++ -ar.exe, as.exe и еще пяток хранятся в двух копиях в разных подкаталогах -lib частично лежат в gcc\lib, но немного в gcc\mingw32\4.9.2 2)ИЧСХ, обычно компилятор сам знает, где искать свое барахло, но иногда.... Ну не хочет он, ****, при сборке dll видеть -lgcc, ни сам, ни если ему под нос положить. Решил: Помогает только положить под нос и сказать ld ... libgcc.a 3)Статическая сборка как минимум под Windows потребует замену gcc libc, Но динамическую же сборку - могу записать в плюс: сборку с-программ с msvcrt.dll без лишних зависимостей вообще, а С++ рантайм пару мегабайт и без геморроя с манифестами и версиями. 4)Одна и так же версия компилятора, с одинаковым makefile порождает библиотеки разного размера, если компилить под Win и под Lin. Страшно брать и линковать с разных мест сборки, но вроде работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 00:19 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Siemargl1)Полный бордель внутри каталога gcc И? Кто тебе виноват, что ты используешь кривую и неродную систему, с оберточным костылем? Пересаживайся на Linux, где gcc мейснтрим, там будет тебе феншуй по полной Siemargl2) Windows Windows Windows Siemargl3)Статическая сборка как минимум под Windows потребует Ну что за детский сад, штаны на лямках! Под Windows есть clang/C2 в составе MS VS 2015, если так уж сильно хочется последних C++ ништяков. Какой смысл сидеть и колоться об реально никем не поддерживамую платформу? Siemargl4)Одна и так же версия компилятора, с одинаковым makefile порождает библиотеки разного размера, если компилить под Win и под Lin. Страшно брать и линковать с разных мест сборки, но вроде работает. Вообще жесть. Ты поди и про отличия в ABI еще не почитал нигде? https://en.wikipedia.org/wiki/X86_calling_conventions#x86-64_calling_conventions Ах ну да, про XMM регистры было зачтено за бред, я забыл :):) Может стоит в Java мир уйти, там-то ничего не отличается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 03:42 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
dbpatch ... Коллега dbpatch суров, но справедлив... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 14:04 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Собственно, весть же топик не совсем про GCC, а про его порт на Win, именуемый MinGW, так ? Мы должны это подчеркнуть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 14:06 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
dbpatchSiemargl1)Полный бордель внутри каталога gcc И? Кто тебе виноват, что ты используешь кривую и неродную систему, с оберточным костылем? Пересаживайся на Linux, где gcc мейснтрим, там будет тебе феншуй по полнойНесмотря на то, что я в 96% случаев пользуюсь MingGW, вполне в состоянии посмотреть и в "родной" системе (под рукой Ubuntu14): include находим в /usr/include, но часть лежит в /usr/lib/gcc/x86_64-linux-gnu/4.8/include бинарники лежат в /usr/bin, но cc1 и cc1plus лежит в /usr/lib/gcc/x86_64-linux-gnu/4.8/ Практически такой же бардак (только либы (.a) вместе лежат, что впрочем (2) лечит) dbpatchSiemargl3)Статическая сборка как минимум под Windows потребует Ну что за детский сад, штаны на лямках! Под Windows есть clang/C2 в составе MS VS 2015, если так уж сильно хочется последних C++ ништяков. Какой смысл сидеть и колоться об реально никем не поддерживаемую платформу?Ага, Clang под Windows только вышел, никем не используется (а еще он в CBuilder10 есть). И уровень поддержки там отличается от gcc. /sarcasm Кроме того, я часто пользуюсь кросс-компилятором, где выбора у меня просто нет. dbpatchSiemargl4)Одна и так же версия компилятора, с одинаковым makefile порождает библиотеки разного размера, если компилить под Win и под Lin. Страшно брать и линковать с разных мест сборки, но вроде работает. Вообще жесть. Ты поди и про отличия в ABI еще не почитал нигде? https://en.wikipedia.org/wiki/X86_calling_conventions#x86-64_calling_conventions Ах ну да, про XMM регистры было зачтено за бред, я забыл :):)ABI тут ни при чем, целевой таргет одинаковый, как и версии компилятора. Про XMM в привязке к передаче параметров-структур и действительно бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 14:57 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Siemargldbpatchпропущено... И? Кто тебе виноват, что ты используешь кривую и неродную систему, с оберточным костылем? Пересаживайся на Linux, где gcc мейснтрим, там будет тебе феншуй по полнойНесмотря на то, что я в 96% случаев пользуюсь MingGW, вполне в состоянии посмотреть и в "родной" системе (под рукой Ubuntu14): include находим в /usr/include, но часть лежит в /usr/lib/gcc/x86_64-linux-gnu/4.8/include бинарники лежат в /usr/bin, но cc1 и cc1plus лежит в /usr/lib/gcc/x86_64-linux-gnu/4.8/ И? у тебя в системе может стоять одновременно и 4.8, и 5.3. Как нужно разделять, озвучишь? И тебя что, заставляют в makefile эти пути вручную прописывать? Да неужели? SiemarglАга, Clang под Windows только вышел, никем не используется (а еще он в CBuilder10 есть). И уровень поддержки там отличается от gcc. /sarcasm где там? в clang или msvc? насколько я знаю, в ms поддержка очень оперативная, с ними реально приятно работать SiemarglКроме того, я часто пользуюсь кросс-компилятором, где выбора у меня просто нет. тем более странно сидеть под виндой. кто мешает взгромоздить актуальный linux в одну из систем виртуализации? там даже есть интеграция с visual studio, есть плагин соотвествующий (вернее пара - свой и wingdb) - сидишь в нормальной IDE отлаживаешь линукс процессы, красота SiemarglПро XMM в привязке к передаче параметров-структур и действительно бред. Нет не бред, структура (не указатель, а структура целиком) длиной до 16 байт при передаче упаковывается в 128 битный регистр, известный факт-фича. Но ты тогда не смог пояснить, что передаешь именно указатель, и кто тебе виноват? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 18:53 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
SiemarglABI тут ни при чем, целевой таргет одинаковый, как и версии компилятора. про кросскомпиляцию ты ничего не говорил, тут за тебя всегда должны догадываться? а так, в мире существует еще и link time optimization, версии линкера тоже одинаковые, и у компиляторов, прям тютелька в тютельку, и номера релизов вплоть до номеров ревизий совпадают и собраны они из единого репозитория? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 18:58 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
dbpatch, Читать ты не умеешь, по делу сказать тоже не можешь. Так что отвечать тебе смысла не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 19:17 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Кстати, не уточнил. Весь этот файловый бардак обычно не заметен. Пока не нужно использовать -nostdlib, который используется в основном при кросс-компиляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 19:33 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Siemargl include находим в /usr/include, но часть лежит в /usr/lib/gcc/x86_64-linux-gnu/4.8/include И у этого есть очень простое объяснение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 09:28 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyКакая из f будет взята четко определено. А какая будет weak где определено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 09:34 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Siemargldbpatch, Читать ты не умеешь, по делу сказать тоже не можешь. Так что отвечать тебе смысла не вижу. ты плакал что размеры бинариков собранные отличаются при кросскомпиляции (как мы выяснили потом) под разными хост платформами. тебе задали простой вопрос - совпадают ли версии компилятора и линкера. и библиотек (код из статичных библиотек очень даже может инлайниться). и знаешь ли ты про LTO вместо этого ты развесил обиженно губы, аки девочка какая-то. видно ты и про LTO не в курсе, и как версии срававать - тоже не знаешь. смешно, кисо обиделось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 11:31 |
|
||
|
Как я люблю gcc
|
|||
|---|---|---|---|
|
#18+
Следующее чудо - не gcc, но друг его GNU make. Перестал собираться элементарный пример. Возможно, сменилась версия make c 3.82 на 3.82.90, но не факт, что это причина Перестало подхватываться правило (а работало раньше) Код: plaintext 1. 2. Причем, в make есть builtin правила - и оно подхватывает CFLAGS, но не INCLUDES, так что выглядело очень похоже на верную строку. <tab> имеется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 20:14 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39391520&tid=2017801]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 292ms |
| total: | 482ms |

| 0 / 0 |
