ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» C, С++ | |
|
|
|
Железный канал: «C, С++» |
|
|
Diff
708 EGP
      Рейтинг канала: 8(861) : 44 Posts: 4179 Location: Сферическая Земля в вакууме. Joined: 04 Jul 2003
 |
|
DIMOSUS.X wrote: |
В муках родил вот такой мэйк файл
|
За такими вещами чем изобретать самому, лучше обращаться к коллективному бессознательному: https://www.google.com/search?q=makefile+separate+obj
_________________ Конец света в конце тоннеля |
|
|
RenderG
2298 EGP
                  Рейтинг канала: 10(1433) : 243 Posts: 20534 Location: [OEG] Joined: 18 Sep 2006
 |
|
Кусок ночного быдлокода. Чисто поржать.
Cкрытый текст (кликните здесь для просмотра)
Code: |
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);
}
}
|
Заменил таким. Вроде работает.
Code: |
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
Last edited by RenderG on 22:52 03-01-2016; edited 2 times in total |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 4(58) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
RenderG wrote: |
Заменил таким. Вроде работает.
|
Елочная гирлянда?
|
|
|
RenderG
2298 EGP
                  Рейтинг канала: 10(1433) : 243 Posts: 20534 Location: [OEG] Joined: 18 Sep 2006
 |
|
Мигалка (люстра) сыну на полицейскую тачку.
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(21) : 93 Posts: 2521 Location: Кронштадт Joined: 09 Apr 2007
 |
|
Моя очередь задавать глупые вопросы
Кто-нибудь знает, как можно переменные окружения VS передать в make ? Ключик -e передает только системные...
Пока делаю так:
Code: |
make Platform=$(Platform) Configuration=$(Configuration) build |
Но что-то мне подсказывает, что должно быть более красивое решение.
Задача: Сделать универсальный Makefile для Винды, Линукса, Мака и Андройда.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Last edited by ТехноМаг on 15:40 14-01-2016; edited 1 time in total |
|
|
Grebomet
1469 EGP
      Рейтинг канала: 8(759) : 261 Posts: 4790 Location: Питербурх Joined: 06 Jan 2003
 |
|
Make? Ты уверен, что не NMake?
ТехноМаг wrote: |
Задача: Сделать универсальный Makefile для Винды, Линукса, Мака и Андройда.
|
За "андроид", написанный через й - отдельные лучи поноса.
А вообще задача если и выполнима, то с некрасивыми кульбитами, костылми и подпорками. На винде - свой вариант nmake, не совместимый со здравым смыслом, на маке может быть свой (не помню, что там), андроид собирается GNU make.
Ладно, допустим, ты везде gmake поставишь (хотя на винде он уже давно не собирается, ЕМНИП). Но все равно придется говнокодить и подпоркотворчествовать.
Я бы посоветовал посмотреть в сторону кроссплатформенных систем сборки - хотя бы той же CMake. Там тоже не фонтан, но лбом в стену придется стучать реже, чем с голыми мейкфайлами.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(21) : 93 Posts: 2521 Location: Кронштадт Joined: 09 Apr 2007
 |
|
Мак Линукс и дройд - это GNU make
Для винды - MinGW, что по сути тоже-самое.
Разница сводится только к выбору команды для цели clean, install и ряда специфичных флагов компилятора/линковщика (из серии -mwindows)
Nmake принимает в качестве команды make и нормально с ним работает.
CMake у меня не заводится под виндой (и черт его знает почему).
Правда через MSys пока еще не пытался его ставить, но это уже само по себе костыль (да и как из под VS его дергать через окружение Msys тоже не особо понятно).
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Last edited by ТехноМаг on 16:20 14-01-2016; edited 4 times in total |
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(802) : 37 Posts: 12332
Joined: 17 Oct 2004
 |
|
Зачем этот рипофф, когда есть Cygwin?
_________________ Люблю свободный полёт... :) |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(21) : 93 Posts: 2521 Location: Кронштадт Joined: 09 Apr 2007
 |
|
AnrDaemon wrote: |
когда есть Cygwin?
|
Согласен. С ним и проблем меньше - щас поставим.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(802) : 37 Posts: 12332
Joined: 17 Oct 2004
 |
|
Ну, про проблемы не мне тебе рассказывать…
Тут новый прикол вышел с последним апдейтом Win10 (1511)…
_________________ Люблю свободный полёт... :) |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(21) : 93 Posts: 2521 Location: Кронштадт Joined: 09 Apr 2007
 |
|
Там их много появилось. Какой конкретно ты имеешь ввиду?
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Grebomet
1469 EGP
      Рейтинг канала: 8(759) : 261 Posts: 4790 Location: Питербурх Joined: 06 Jan 2003
 |
|
ТехноМаг wrote: |
Nmake принимает в качестве команды make и нормально с ним работает.
|
Фигушки:
Cкрытый текст (кликните здесь для просмотра)
Code: |
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>
|
|
ТехноМаг wrote: |
Для винды - MinGW, что по сути тоже-самое.
|
Фуфуфу, вы б еще OpenWatcom использовали
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(21) : 93 Posts: 2521 Location: Кронштадт Joined: 09 Apr 2007
 |
|
Аргументируйте.
добавлено спустя 12 минут:
А GNU make-то стоит у тебя? в PATH прописан?
Cкрытый текст (кликните здесь для просмотра)
|
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Last edited by ТехноМаг on 18:44 14-01-2016; edited 2 times in total |
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(802) : 37 Posts: 12332
Joined: 17 Oct 2004
 |
|
ТехноМаг wrote: |
Там их много появилось. Какой конкретно ты имеешь ввиду?
|
Прикол - один. Форки поломались.
https://cygwin.com/ml/cygwin/2016-01/msg00093.html (См. список фиксов.)
_________________ Люблю свободный полёт... :) |
|
|
Grebomet
1469 EGP
      Рейтинг канала: 8(759) : 261 Posts: 4790 Location: Питербурх Joined: 06 Jan 2003
 |
|
ТехноМаг wrote: |
Аргументируйте.
|
Переводили как-то проектик с приличного компилятора на МинГВ.
Граблей обрели множество, причем трудновыводимых:
- система сборки вроде бы детектирует ЮНИХ, а на самом деле винда. Кое-какие третьесторонние библиотеки запарились патчить, чтоб собрались.
- какие-то грабли с printf(). Сейчас уже не припомню, но то ли не срабатывали какие-то %-спецификаторы, то ли по ошибке доступа к памяти вылетало.
- в виндовых ДЛЛках не вызывались конструкторы-деструкторы глобальных объектов при аттаче-детаче процесса. Понимаю, что "такнизя" и "проблемавДНК", но наша задача была собрать имеющийся код, а не заниматься улучшайзингами.
В результате провозились несколько месяцев вместо запланированных пары недель, а полученный в результате продукт глючил, падал и косячил.
ТехноМаг wrote: |
А GNU make-то стоит у тебя? в PATH прописан?
|
Кое-кто (не будем показывать пальцами) утверждал, что GNU make не нужен:
ТехноМаг wrote: |
Nmake принимает в качестве команды make и нормально с ним работает.
|
AnrDaemon wrote: |
Прикол - один. Форки поломались.
|
А без учета бага, насколько близко к юниксовым удалось реализовать форк цыгвиновцам? Скажем, можно ли нафоркать чайлдов, которые будут пользоваться родительской памятью (copy-oт-write и все такое), а потом обождать их завершения через wait()?
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(802) : 37 Posts: 12332
Joined: 17 Oct 2004
 |
|
Баг пофиксили, если ты не обратил внимания.
Ответить на твой вопрос со всей точностью не могу, я не силён в специфике работы системы на таком уровне.
Но вроде как да, возможно.
_________________ Люблю свободный полёт... :) |
|
|
Grebomet
1469 EGP
      Рейтинг канала: 8(759) : 261 Posts: 4790 Location: Питербурх Joined: 06 Jan 2003
 |
|
AnrDaemon wrote: |
Но вроде как да, возможно.
|
Нашел в их факе: https://www.cygwin.com/faq.html#faq.api.fork
Как и ожидалось - хак на хаке, глюк на глюке, тормоз на тормозе.
Вообще, цыгвин с одной стороны - хорошая штука, когда надо хоть как-то собрать под виндой то, что изначально разработано под *никсы. Ключевые слова при этом - "хоть как-то".
Использовать его для серьезных проектов - путь камкадзе. Потому что там внутри подпорки везде, и никогда не знаешь, когда и при каких условиях какой-нибудь костыль вдруг соскользнет и все обсыплется.
А для небольших проектиков (всяких утилиток, по-быстрому лабаемых на коленке) я, помнится, успешно юзал и MinGW, и MSys. Можно было и цигвин, но он даже слишком монструозен для небольших утилит (и надо за утилитой лишнюю ДЛЛ-ку таскать).
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(802) : 37 Posts: 12332
Joined: 17 Oct 2004
 |
|
Я не собираюсь спорить, поскольку сам ничего не собираю, но на досуге посмотри список поставляемого на его базе софта.
Да, некоторые POSIX API в принципе нельзя перенести на винду.
Но те, что можно, перенесли, они работают, когда ломаются - чинятся и улучшаются.
И, да, ты не прав. Тормоза тут только когда спотыкаешься о нативную консоль. В нормальном терминале всё летает. (А если отключить Prefetch, то вообще летает, ибо пропадает 10-секундная задерка на первом старте программ.)
добавлено спустя 2 минуты:
Grebomet wrote: |
(и надо за утилитой лишнюю ДЛЛ-ку таскать
|
Неверная постановка вопроса. Надо не DLL за утилитой таскать, а добавить свою утилиту в репо.
_________________ Люблю свободный полёт... :)
Last edited by AnrDaemon on 07:17 16-01-2016; edited 1 time in total |
|
|
Diff
708 EGP
      Рейтинг канала: 8(861) : 44 Posts: 4179 Location: Сферическая Земля в вакууме. Joined: 04 Jul 2003
 |
|
AnrDaemon wrote: |
Надо не DLL за утилитой таскать, а добавить свою утилиту в репо.
|
И таскать за утилитой цигвин? Македонский с обрывками гордиевого узла рыдает в углу...
_________________ Конец света в конце тоннеля |
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(802) : 37 Posts: 12332
Joined: 17 Oct 2004
 |
|
Не вижу смысла в этом споре.
Для меня Cygwin это неотъемлемая часть повседневной среды обитания.
Ибо стандартные средства скриптописания в винде ниже плинтуса.
_________________ Люблю свободный полёт... :) |
|
|
|
|
|
Железный канал: «C, С++» |
|
|