|
|
|
Железный канал: «C, С++» |
|
|
Diff 708 EGP
Рейтинг канала: 8(861) Репутация: 44 Сообщения: 4179 Откуда: Сферическая Земля в вакууме. Зарегистрирован: 04.07.2003 |
|
DIMOSUS.X : |
В муках родил вот такой мэйк файл
|
За такими вещами чем изобретать самому, лучше обращаться к коллективному бессознательному: https://www.google.com/search?q=makefile+separate+obj
_________________ Конец света в конце тоннеля |
|
|
RenderG 2293 EGP
Рейтинг канала: 10(1433) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
Кусок ночного быдлокода. Чисто поржать.
Cкрытый текст (кликните здесь для просмотра)
Код: |
void spread(unsigned long color, unsigned long color2, byte times, byte wait, byte lid)
{
for (int i=0; i<times; i++)
{
leds.setPixelColor(0, color);
leds.setPixelColor(7, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
leds.setPixelColor(1, color);
leds.setPixelColor(6, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
leds.setPixelColor(2, color);
leds.setPixelColor(5, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
leds.setPixelColor(3, color);
leds.setPixelColor(4, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
leds.setPixelColor(4, color);
leds.setPixelColor(3, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
leds.setPixelColor(5, color);
leds.setPixelColor(2, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
leds.setPixelColor(6, color);
leds.setPixelColor(1, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
leds.setPixelColor(7, color);
leds.setPixelColor(0, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
}
}
|
Заменил таким. Вроде работает.
Код: |
void spread(unsigned long color, unsigned long color2, byte times, byte wait, byte lid)
{
for (int j=1; j<times; j++)
{
for (int i=1; i<LED_COUNT+1; i++)
{
leds.setPixelColor(i-1, color);
leds.setPixelColor(LED_COUNT-i, color2);
leds.show();
delay(lid);
clearLEDs();
leds.show();
delay(wait);
}
}
} |
|
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy
Последний раз редактировалось: RenderG (22:52 03-01-2016), всего редактировалось 2 раз(а) |
|
|
БулерМэн 420 EGP
Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006 |
|
RenderG : |
Заменил таким. Вроде работает.
|
Елочная гирлянда?
|
|
|
RenderG 2293 EGP
Рейтинг канала: 10(1433) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
Мигалка (люстра) сыну на полицейскую тачку.
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy |
|
|
ТехноМаг 360 EGP
Рейтинг канала: 2(21) Репутация: 93 Сообщения: 2513 Откуда: Кронштадт Зарегистрирован: 09.04.2007 |
|
Моя очередь задавать глупые вопросы
Кто-нибудь знает, как можно переменные окружения VS передать в make ? Ключик -e передает только системные...
Пока делаю так:
Код: |
make Platform=$(Platform) Configuration=$(Configuration) build |
Но что-то мне подсказывает, что должно быть более красивое решение.
Задача: Сделать универсальный Makefile для Винды, Линукса, Мака и Андройда.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (15:40 14-01-2016), всего редактировалось 1 раз |
|
|
Grebomet 1460 EGP
Рейтинг канала: 8(759) Репутация: 261 Сообщения: 4783 Откуда: Питербурх Зарегистрирован: 06.01.2003 |
|
Make? Ты уверен, что не NMake?
ТехноМаг : |
Задача: Сделать универсальный Makefile для Винды, Линукса, Мака и Андройда.
|
За "андроид", написанный через й - отдельные лучи поноса.
А вообще задача если и выполнима, то с некрасивыми кульбитами, костылми и подпорками. На винде - свой вариант nmake, не совместимый со здравым смыслом, на маке может быть свой (не помню, что там), андроид собирается GNU make.
Ладно, допустим, ты везде gmake поставишь (хотя на винде он уже давно не собирается, ЕМНИП). Но все равно придется говнокодить и подпоркотворчествовать.
Я бы посоветовал посмотреть в сторону кроссплатформенных систем сборки - хотя бы той же CMake. Там тоже не фонтан, но лбом в стену придется стучать реже, чем с голыми мейкфайлами.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
ТехноМаг 360 EGP
Рейтинг канала: 2(21) Репутация: 93 Сообщения: 2513 Откуда: Кронштадт Зарегистрирован: 09.04.2007 |
|
Мак Линукс и дройд - это GNU make
Для винды - MinGW, что по сути тоже-самое.
Разница сводится только к выбору команды для цели clean, install и ряда специфичных флагов компилятора/линковщика (из серии -mwindows)
Nmake принимает в качестве команды make и нормально с ним работает.
CMake у меня не заводится под виндой (и черт его знает почему).
Правда через MSys пока еще не пытался его ставить, но это уже само по себе костыль (да и как из под VS его дергать через окружение Msys тоже не особо понятно).
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (16:20 14-01-2016), всего редактировалось 4 раз(а) |
|
|
AnrDaemon 862 EGP
Рейтинг канала: 8(790) Репутация: 37 Сообщения: 12318
Зарегистрирован: 17.10.2004 |
|
Зачем этот рипофф, когда есть Cygwin?
_________________ Люблю свободный полёт... :) |
|
|
ТехноМаг 360 EGP
Рейтинг канала: 2(21) Репутация: 93 Сообщения: 2513 Откуда: Кронштадт Зарегистрирован: 09.04.2007 |
|
AnrDaemon : |
когда есть Cygwin?
|
Согласен. С ним и проблем меньше - щас поставим.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
AnrDaemon 862 EGP
Рейтинг канала: 8(790) Репутация: 37 Сообщения: 12318
Зарегистрирован: 17.10.2004 |
|
Ну, про проблемы не мне тебе рассказывать…
Тут новый прикол вышел с последним апдейтом Win10 (1511)…
_________________ Люблю свободный полёт... :) |
|
|
ТехноМаг 360 EGP
Рейтинг канала: 2(21) Репутация: 93 Сообщения: 2513 Откуда: Кронштадт Зарегистрирован: 09.04.2007 |
|
Там их много появилось. Какой конкретно ты имеешь ввиду?
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Grebomet 1460 EGP
Рейтинг канала: 8(759) Репутация: 261 Сообщения: 4783 Откуда: Питербурх Зарегистрирован: 06.01.2003 |
|
ТехноМаг : |
Nmake принимает в качестве команды make и нормально с ним работает.
|
Фигушки:
Cкрытый текст (кликните здесь для просмотра)
Код: |
Setting environment for using Microsoft Visual Studio 2010 x86 tools.
C:\src>make
'make' is not recognized as an internal or external command,
operable program or batch file.
C:\src>nmake
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.
C:\src>
|
|
ТехноМаг : |
Для винды - MinGW, что по сути тоже-самое.
|
Фуфуфу, вы б еще OpenWatcom использовали
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
ТехноМаг 360 EGP
Рейтинг канала: 2(21) Репутация: 93 Сообщения: 2513 Откуда: Кронштадт Зарегистрирован: 09.04.2007 |
|
Аргументируйте.
добавлено спустя 12 минут:
А GNU make-то стоит у тебя? в PATH прописан?
Cкрытый текст (кликните здесь для просмотра)
|
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (18:44 14-01-2016), всего редактировалось 2 раз(а) |
|
|
AnrDaemon 862 EGP
Рейтинг канала: 8(790) Репутация: 37 Сообщения: 12318
Зарегистрирован: 17.10.2004 |
|
ТехноМаг : |
Там их много появилось. Какой конкретно ты имеешь ввиду?
|
Прикол - один. Форки поломались.
https://cygwin.com/ml/cygwin/2016-01/msg00093.html (См. список фиксов.)
_________________ Люблю свободный полёт... :) |
|
|
Grebomet 1460 EGP
Рейтинг канала: 8(759) Репутация: 261 Сообщения: 4783 Откуда: Питербурх Зарегистрирован: 06.01.2003 |
|
ТехноМаг : |
Аргументируйте.
|
Переводили как-то проектик с приличного компилятора на МинГВ.
Граблей обрели множество, причем трудновыводимых:
- система сборки вроде бы детектирует ЮНИХ, а на самом деле винда. Кое-какие третьесторонние библиотеки запарились патчить, чтоб собрались.
- какие-то грабли с printf(). Сейчас уже не припомню, но то ли не срабатывали какие-то %-спецификаторы, то ли по ошибке доступа к памяти вылетало.
- в виндовых ДЛЛках не вызывались конструкторы-деструкторы глобальных объектов при аттаче-детаче процесса. Понимаю, что "такнизя" и "проблемавДНК", но наша задача была собрать имеющийся код, а не заниматься улучшайзингами.
В результате провозились несколько месяцев вместо запланированных пары недель, а полученный в результате продукт глючил, падал и косячил.
ТехноМаг : |
А GNU make-то стоит у тебя? в PATH прописан?
|
Кое-кто (не будем показывать пальцами) утверждал, что GNU make не нужен:
ТехноМаг : |
Nmake принимает в качестве команды make и нормально с ним работает.
|
AnrDaemon : |
Прикол - один. Форки поломались.
|
А без учета бага, насколько близко к юниксовым удалось реализовать форк цыгвиновцам? Скажем, можно ли нафоркать чайлдов, которые будут пользоваться родительской памятью (copy-oт-write и все такое), а потом обождать их завершения через wait()?
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
AnrDaemon 862 EGP
Рейтинг канала: 8(790) Репутация: 37 Сообщения: 12318
Зарегистрирован: 17.10.2004 |
|
Баг пофиксили, если ты не обратил внимания.
Ответить на твой вопрос со всей точностью не могу, я не силён в специфике работы системы на таком уровне.
Но вроде как да, возможно.
_________________ Люблю свободный полёт... :) |
|
|
Grebomet 1460 EGP
Рейтинг канала: 8(759) Репутация: 261 Сообщения: 4783 Откуда: Питербурх Зарегистрирован: 06.01.2003 |
|
AnrDaemon : |
Но вроде как да, возможно.
|
Нашел в их факе: https://www.cygwin.com/faq.html#faq.api.fork
Как и ожидалось - хак на хаке, глюк на глюке, тормоз на тормозе.
Вообще, цыгвин с одной стороны - хорошая штука, когда надо хоть как-то собрать под виндой то, что изначально разработано под *никсы. Ключевые слова при этом - "хоть как-то".
Использовать его для серьезных проектов - путь камкадзе. Потому что там внутри подпорки везде, и никогда не знаешь, когда и при каких условиях какой-нибудь костыль вдруг соскользнет и все обсыплется.
А для небольших проектиков (всяких утилиток, по-быстрому лабаемых на коленке) я, помнится, успешно юзал и MinGW, и MSys. Можно было и цигвин, но он даже слишком монструозен для небольших утилит (и надо за утилитой лишнюю ДЛЛ-ку таскать).
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
AnrDaemon 862 EGP
Рейтинг канала: 8(790) Репутация: 37 Сообщения: 12318
Зарегистрирован: 17.10.2004 |
|
Я не собираюсь спорить, поскольку сам ничего не собираю, но на досуге посмотри список поставляемого на его базе софта.
Да, некоторые POSIX API в принципе нельзя перенести на винду.
Но те, что можно, перенесли, они работают, когда ломаются - чинятся и улучшаются.
И, да, ты не прав. Тормоза тут только когда спотыкаешься о нативную консоль. В нормальном терминале всё летает. (А если отключить Prefetch, то вообще летает, ибо пропадает 10-секундная задерка на первом старте программ.)
добавлено спустя 2 минуты:
Grebomet : |
(и надо за утилитой лишнюю ДЛЛ-ку таскать
|
Неверная постановка вопроса. Надо не DLL за утилитой таскать, а добавить свою утилиту в репо.
_________________ Люблю свободный полёт... :)
Последний раз редактировалось: AnrDaemon (07:17 16-01-2016), всего редактировалось 1 раз |
|
|
Diff 708 EGP
Рейтинг канала: 8(861) Репутация: 44 Сообщения: 4179 Откуда: Сферическая Земля в вакууме. Зарегистрирован: 04.07.2003 |
|
AnrDaemon : |
Надо не DLL за утилитой таскать, а добавить свою утилиту в репо.
|
И таскать за утилитой цигвин? Македонский с обрывками гордиевого узла рыдает в углу...
_________________ Конец света в конце тоннеля |
|
|
AnrDaemon 862 EGP
Рейтинг канала: 8(790) Репутация: 37 Сообщения: 12318
Зарегистрирован: 17.10.2004 |
|
Не вижу смысла в этом споре.
Для меня Cygwin это неотъемлемая часть повседневной среды обитания.
Ибо стандартные средства скриптописания в винде ниже плинтуса.
_________________ Люблю свободный полёт... :) |
|
|
|
|
|
Железный канал: «C, С++» |
|