|  |  |  | 
	| Железный канал: «C, С++» | 
	|  | 
	|  | 
	
		| Diff 
  708 EGP 
       Рейтинг канала: 8(861)
 Репутация: 44
 Сообщения: 4179
 Откуда: Сферическая Земля в вакууме.
 Зарегистрирован: 04.07.2003
 
    |  | 
	  | DIMOSUS.X : |  
	  | В муках родил вот такой мэйк файл |  За такими вещами чем изобретать самому, лучше обращаться к коллективному бессознательному: https://www.google.com/search?q=makefile+separate+obj
 _________________
 Конец света в конце тоннеля
 | 
		
		|  | 
    |  | 
	
		| RenderG 
  2298 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 раз(а)
 | 
		
		|  | 
    |  | 
	
		| БулерМэн 
  437 EGP 
    Рейтинг канала: 4(58)
 Репутация: 68
 Сообщения: 1580
 Откуда: Гороховец
 Зарегистрирован: 07.02.2006
 
      |  | 
	  | RenderG : |  
	  | Заменил таким. Вроде работает. |  Елочная гирлянда?
   | 
		
		|  | 
    |  | 
	
		| RenderG 
  2298 EGP 
                   Рейтинг канала: 10(1433)
 Репутация: 243
 Сообщения: 20534
 Откуда: [OEG]
 Зарегистрирован: 18.09.2006
 
      |  | Мигалка (люстра) сыну на полицейскую тачку.   _________________
 No More Mr. Nice Guy!
 Смирись, Пилот!
 Ты будешь жалок
 Всего-лишь после
 Пары палок... (с) Dandy
 | 
		
		|  | 
    |  | 
	
		| ТехноМаг 
  360 EGP 
      Рейтинг канала: 2(21)
 Репутация: 93
 Сообщения: 2521
 Откуда: Кронштадт
 Зарегистрирован: 09.04.2007
 
    |  | Моя очередь задавать глупые вопросы   
 Кто-нибудь знает, как можно переменные окружения VS передать в make ? Ключик -e передает только системные...
 
 Пока делаю так:
 
 
 
	  | Код: |  
	  | make Platform=$(Platform) Configuration=$(Configuration) build |  
 Но что-то мне подсказывает, что должно быть более красивое решение.
 
 Задача: Сделать универсальный Makefile для Винды, Линукса, Мака и Андройда.
 _________________
 (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
 
 Последний раз редактировалось: ТехноМаг (15:40 14-01-2016), всего редактировалось 1 раз
 | 
		
		|  | 
    |  | 
	
		| Grebomet 
  1470 EGP 
       Рейтинг канала: 8(759)
 Репутация: 261
 Сообщения: 4790
 Откуда: Питербурх
 Зарегистрирован: 06.01.2003
 
    |  | Make? Ты уверен, что не NMake? 
 
 
	  | ТехноМаг : |  
	  | Задача: Сделать универсальный Makefile для Винды, Линукса, Мака и Андройда. |  За "андроид", написанный через й - отдельные лучи поноса.
 
 А вообще задача если и выполнима, то с некрасивыми кульбитами, костылми и подпорками. На винде - свой вариант nmake, не совместимый со здравым смыслом, на маке может быть свой (не помню, что там), андроид собирается GNU make.
 Ладно, допустим, ты везде gmake поставишь (хотя на винде он уже давно не собирается, ЕМНИП). Но все равно придется говнокодить и подпоркотворчествовать.
 
 Я бы посоветовал посмотреть в сторону кроссплатформенных систем сборки - хотя бы той же CMake. Там тоже не фонтан, но лбом в стену придется стучать реже, чем с голыми мейкфайлами.
 _________________
 Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
 | 
		
		|  | 
    |  | 
	
		| ТехноМаг 
  360 EGP 
      Рейтинг канала: 2(21)
 Репутация: 93
 Сообщения: 2521
 Откуда: Кронштадт
 Зарегистрирован: 09.04.2007
 
    |  | Мак Линукс и дройд - это GNU make Для винды - MinGW, что по сути тоже-самое.
 
 Разница сводится только к выбору команды для цели clean, install и ряда специфичных флагов компилятора/линковщика (из серии -mwindows)
 
 Nmake принимает в качестве команды make и нормально с ним работает.
 
 CMake у меня не заводится под виндой (и черт его знает почему).
 Правда через MSys пока еще не пытался его ставить, но это уже само по себе костыль (да и как из под VS его дергать через окружение Msys тоже не особо понятно).
 _________________
 (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
 
 Последний раз редактировалось: ТехноМаг (16:20 14-01-2016), всего редактировалось 4 раз(а)
 | 
		
		|  | 
    |  | 
	
		| AnrDaemon 
  866 EGP 
         Рейтинг канала: 8(805)
 Репутация: 37
 Сообщения: 12336
 
 Зарегистрирован: 17.10.2004
 
    |  | Зачем этот рипофф, когда есть Cygwin?
 _________________
 Люблю свободный полёт... :)
 | 
		
		|  | 
    |  | 
	
		| ТехноМаг 
  360 EGP 
      Рейтинг канала: 2(21)
 Репутация: 93
 Сообщения: 2521
 Откуда: Кронштадт
 Зарегистрирован: 09.04.2007
 
    |  | 
	  | AnrDaemon : |  
	  | когда есть Cygwin? |  Согласен. С ним и проблем меньше - щас поставим.
 _________________
 (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
 | 
		
		|  | 
    |  | 
	
		| AnrDaemon 
  866 EGP 
         Рейтинг канала: 8(805)
 Репутация: 37
 Сообщения: 12336
 
 Зарегистрирован: 17.10.2004
 
    |  | Ну, про проблемы не мне тебе рассказывать…   Тут новый прикол вышел с последним апдейтом Win10 (1511)…
 _________________
 Люблю свободный полёт... :)
 | 
		
		|  | 
    |  | 
	
		| ТехноМаг 
  360 EGP 
      Рейтинг канала: 2(21)
 Репутация: 93
 Сообщения: 2521
 Откуда: Кронштадт
 Зарегистрирован: 09.04.2007
 
    |  | 
 Там их много появилось. Какой конкретно ты имеешь ввиду?
 _________________
 (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
 | 
		
		|  | 
    |  | 
	
		| Grebomet 
  1470 EGP 
       Рейтинг канала: 8(759)
 Репутация: 261
 Сообщения: 4790
 Откуда: Питербурх
 Зарегистрирован: 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
 Сообщения: 2521
 Откуда: Кронштадт
 Зарегистрирован: 09.04.2007
 
    |  | Аргументируйте.
 
 добавлено спустя 12 минут:
 
 
 А GNU make-то стоит у тебя? в PATH прописан?
 
 
 
	| 
 Cкрытый текст   (кликните здесь для просмотра)
 |  _________________
 (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
 
 Последний раз редактировалось: ТехноМаг (18:44 14-01-2016), всего редактировалось 2 раз(а)
 | 
		
		|  | 
    |  | 
	
		| AnrDaemon 
  866 EGP 
         Рейтинг канала: 8(805)
 Репутация: 37
 Сообщения: 12336
 
 Зарегистрирован: 17.10.2004
 
    |  | 
	  | ТехноМаг : |  
	  | Там их много появилось. Какой конкретно ты имеешь ввиду? |  Прикол - один. Форки поломались.
 https://cygwin.com/ml/cygwin/2016-01/msg00093.html (См. список фиксов.)
 _________________
 Люблю свободный полёт... :)
 | 
		
		|  | 
    |  | 
	
		| Grebomet 
  1470 EGP 
       Рейтинг канала: 8(759)
 Репутация: 261
 Сообщения: 4790
 Откуда: Питербурх
 Зарегистрирован: 06.01.2003
 
    |  | 
	  | ТехноМаг : |  
	  | Аргументируйте. |  Переводили как-то проектик с приличного компилятора на МинГВ.
 Граблей обрели множество, причем трудновыводимых:
 - система сборки вроде бы детектирует ЮНИХ, а на самом деле винда. Кое-какие третьесторонние библиотеки запарились патчить, чтоб собрались.
 - какие-то грабли с printf(). Сейчас уже не припомню, но то ли не срабатывали какие-то %-спецификаторы, то ли по ошибке доступа к памяти вылетало.
 - в виндовых ДЛЛках не вызывались конструкторы-деструкторы глобальных объектов при аттаче-детаче процесса. Понимаю, что "такнизя" и "проблемавДНК", но наша задача была собрать имеющийся код, а не заниматься улучшайзингами.
 
 В результате провозились несколько месяцев вместо запланированных пары недель, а полученный в результате продукт глючил, падал и косячил.
 
 
 
	  | ТехноМаг : |  
	  | А GNU make-то стоит у тебя? в PATH прописан? |  Кое-кто (не будем показывать пальцами) утверждал, что GNU make не нужен:
 
 
	  | ТехноМаг : |  
	  | Nmake принимает в качестве команды make и нормально с ним работает. |  
 
 
	  | AnrDaemon : |  
	  | Прикол - один. Форки поломались. |  А без учета бага, насколько близко к юниксовым удалось реализовать форк цыгвиновцам? Скажем, можно ли нафоркать чайлдов, которые будут пользоваться родительской памятью (copy-oт-write и все такое), а потом обождать их завершения через wait()?
 _________________
 Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
 | 
		
		|  | 
    |  | 
	
		| AnrDaemon 
  866 EGP 
         Рейтинг канала: 8(805)
 Репутация: 37
 Сообщения: 12336
 
 Зарегистрирован: 17.10.2004
 
    |  | Баг пофиксили, если ты не обратил внимания. Ответить на твой вопрос со всей точностью не могу, я не силён в специфике работы системы на таком уровне.
 Но вроде как да, возможно.
 _________________
 Люблю свободный полёт... :)
 | 
		
		|  | 
    |  | 
	
		| Grebomet 
  1470 EGP 
       Рейтинг канала: 8(759)
 Репутация: 261
 Сообщения: 4790
 Откуда: Питербурх
 Зарегистрирован: 06.01.2003
 
    |  | 
	  | AnrDaemon : |  
	  | Но вроде как да, возможно. |  Нашел в их факе: https://www.cygwin.com/faq.html#faq.api.fork
 Как и ожидалось - хак на хаке, глюк на глюке, тормоз на тормозе.
 
 Вообще, цыгвин с одной стороны - хорошая штука, когда надо хоть как-то собрать под виндой то, что изначально разработано под *никсы. Ключевые слова при этом - "хоть как-то".
 
 Использовать его для серьезных проектов - путь камкадзе. Потому что там внутри подпорки везде, и никогда не знаешь, когда и при каких условиях какой-нибудь костыль вдруг соскользнет и все обсыплется.
 
 А для небольших проектиков (всяких утилиток, по-быстрому лабаемых на коленке) я, помнится, успешно юзал и MinGW, и MSys. Можно было и цигвин, но он даже слишком монструозен для небольших утилит (и надо за утилитой лишнюю ДЛЛ-ку таскать).
 _________________
 Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
 | 
		
		|  | 
    |  | 
	
		| AnrDaemon 
  866 EGP 
         Рейтинг канала: 8(805)
 Репутация: 37
 Сообщения: 12336
 
 Зарегистрирован: 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 
  866 EGP 
         Рейтинг канала: 8(805)
 Репутация: 37
 Сообщения: 12336
 
 Зарегистрирован: 17.10.2004
 
    |  | Не вижу смысла в этом споре. Для меня Cygwin это неотъемлемая часть повседневной среды обитания.
 Ибо стандартные средства скриптописания в винде ниже плинтуса.
 _________________
 Люблю свободный полёт... :)
 | 
		
		|  | 
    |  | 
	|  | 
	
		|  | 
    |  | 
	| Железный канал: «C, С++» | 
	
		|  |