.
Друзья, посоветуйте хорошую литературу по с++
🦥Alex Fails
Тег #book тут. Еще есть неотсортированная помойка: https://t.me/joinchat/AAAAAE1yUq2Kh6WdPCtjMA
Berkus
Berkus
Anonymous
Парни, gcc через linux subsystem в винде нормально функционирует? Пока нет возможности никсы поставить, а кодить хочется
Anonymous
или лучше cygwin какой-нибудь накатить?
🦥Alex Fails
да можно ж visual studio build tools поставить
Alexander "SonnySlave"
Anonymous
не охота вижуалку, хрен вычистишь потом
🦥Alex Fails
билд тулзы только поставь
Anonymous
хм, отдельно можно? спасибо, не знал
Anonymous
о, тоже вариант, спасибо
🦥Alex Fails
http://landinghub.visualstudio.com/visual-cpp-build-tools
🦥Alex Fails
или вот старье: https://www.microsoft.com/ru-ru/download/details.aspx?id=40760
Egor
Лучше только не mingw, а mingw-w64 - он посвежее 4.9.2 и 5.1.0 будет. Например, в комплекте с msys2 идёт 7.2.0.
Anonymous
linux subsystem и есть
Evgenii
лучше поставить линукс
Anonymous
да я поставлю, просто хард еще идет
Egor
Нет, там идёт древний mingw с gcc 4.9.2, увы.
🦥Alex Fails
melvin
well, here we go
Крылатый
Так. Забанить сразу?
melvin
A.S.Y. Realty Company вы с рекламой пришли сюда?
melvin
или вас тонкости крестов интересуют?
Berkus
думаю можно банить
Matwey
Я понял
Matwey
У меня система 32-битная, там больше трех гигов памяти нельзя отсыпать. А LLVM-у не хватает похоже. Дожили.
🦥Alex Fails
вспоминаю страдания @foxcpp с asio и >4Гб сожранных компилем
Anonymous
А с учётом, что тут ещё болтается IDE на Java, браузер и текущий telegram-desktop.
Anonymous
Тяжко.
Matwey
Да тут проблема не в памяти, а в адресном пространстве. Захочу я замапить файл в память. А вот адреса и к ончились
Matwey
Беда
Anonymous
Это да, беда.
Oleg
Я слышал, что 32-битный firefox нынче собирается только кросс-компиляцией из 64-битной системы.
(А ещё я как-то собирал gcc под arm прямо на малинке — но там всего 2.5 гига надо, подключил nbd из tmpfs большого компа как swap и хорошо.)
Matwey
у меня gcc нормально на rpi3 собирался, а там всего гигабайт
Matwey
Ignat
Matwey
Matwey
А ты на чем собирал, на сетевом диске или на SD-карточке?
Matwey
Просто при компиляции многие microSD начинают дохнуть и выражается это в том, что на диск вместо данных пишется блок нолей или единиц. А потом линкер жалуется на кривой объектник
🦥Alex Fails
да, они могут, +
Matwey
А еще веселее, если на неё успело что-то засвопиться =)
Matwey
Вынимаешь обратно - а там нули
Matwey
Ггг
Dan
Dan
Это который аудио драйвер?
🦥Alex Fails
не, бустовый
🦥Alex Fails
я их тоже часто путаю, порой работаю с аудио
Dan
А, а то у меня хайлайт на asio сейчас, ибо я тут драйвер реверсю
🦥Alex Fails
🦥Alex Fails
Dan
Не, пытаюсь тут подружить очень старую и очень важную карту с десяткой. Если получится запустить - будет очень очень хорошо. Пока всё крашится и вылетает, ищу причину
Dan
Там долгая история.
🦥Alex Fails
НТ-драйвер или VxD?
Dan
vxd
🦥Alex Fails
да, тяжеловато... по факту, тут надо спеку составить по реализации драйвера, и новый написать
Dan
Я уже даже разрабам писал, они говорят что там всё слишком сильно проприетарно, и они не готовы со мной поделиться хоть какими-то знаниями. Поэтому я с другой стороны захожу - с дебага. Ловлю ошибки и краши, анализирую дампы, смотрю что было вызвано, и так далее.
Dan
Вообще это жестоко конечно, но меня устроит какой-нибудь простой фикс. Я не готов писать дрова сам 😆
🦥Alex Fails
кинь в лс vxd-шку)), ща чо мб Барышня подскажет
Dan
Но мне тут Hiew подогнали, так что процесс пошёл быстрее
Berkus
есть еще radare2, ida, hopper
Dan
Доберусь до машины - закину
Dan
Да, radare2 тоже
Berkus
реверсить целиком проще идой
Aleksey
Ребят, вот есть односвязные списки, где каждый элемент содержит ссылку на следующий элемент. Допустим такой список объявлен для элементов int32.
Как меняется тогда размер каждого элемента / всего списка? То есть, вот эти 32 бита отводятся под данные, а сколько памяти дополнительно в списке отводятся под ссылки?
Или вот еще, что мне непонятно. Если процессор 32-разрядный, и опять же использовать инт32, тогда ссылка на следующий элемент займет всю следующую ячейку, т.е. отщипнет еще 4 байта? Или, если ссылка занимает, например, 1 байт, то каждый следующей элемент начинает смещаться и частично размещаться в одной ячейке памяти, а частично в другой?
Alexander "SonnySlave"
Ребят, вот есть односвязные списки, где каждый элемент содержит ссылку на следующий элемент. Допустим такой список объявлен для элементов int32.
Как меняется тогда размер каждого элемента / всего списка? То есть, вот эти 32 бита отводятся под данные, а сколько памяти дополнительно в списке отводятся под ссылки?
Или вот еще, что мне непонятно. Если процессор 32-разрядный, и опять же использовать инт32, тогда ссылка на следующий элемент займет всю следующую ячейку, т.е. отщипнет еще 4 байта? Или, если ссылка занимает, например, 1 байт, то каждый следующей элемент начинает смещаться и частично размещаться в одной ячейке памяти, а частично в другой?
зависит от размера указателя на твоей системе.
Alexander "SonnySlave"
а сколько занимает твоя переменная, зависит в данном случае от типа данных, а не от значения, в ней хранящегося
Aleksey
зависит от размера указателя на твоей системе.
Ну так вот, случай, когда в качестве данных 32-разрядное целое число, пускай указатель занимает 8 разрядов и память 32-разрядная.
Будет выделяться ровно по две ячейки памяти на элемент или каждая следующая значащая часть элемента (вот эти 32 разряда) начнут разъезжаться между соседними ячейками памяти?
Alexander "SonnySlave"
Thorn
если struct Node { int8_t val; Node* next; };, то (скоре всего) после val будет вставлено 3 байта padding'а, а если struct Node { Node* next; int8_t val; }, то... в общем, то же самое (google C struct alignment / padding rules)
Alexander "SonnySlave"
так то мы дойдём и до того, что память страничная
Thorn
ну и менеджер памяти добавит свой overhead
Alexander "SonnySlave"
Vladislav
Alexander "SonnySlave"
Aleksey
хорошо, я понял
спасибо за объяснение!