реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Переменные Makefile
Злодей
сообщение May 8 2009, 13:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



Здравствуйте! У меня снова "проблемы с выражением собственного хотения".
Код
A = 3
B = $(A)+2

Как сложить, что бы получить в B строку "5" а не "3+2"?

crying.gif Make man навёл на мысль, что переменные в Makefile это исключительно строки и фиг я заставлю его посчитать что-то такое.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение May 8 2009, 15:49
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Злодей @ May 8 2009, 22:27) *
crying.gif Make man навёл на мысль, что переменные в Makefile это исключительно строки и фиг я заставлю его посчитать что-то такое.

Расскажите, пожалуйста, что Вы хотите получить в конечном счете. Может быть Вам порекомендуют другой путь или помогут пройти Ваш.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
aesok
сообщение May 8 2009, 16:14
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(Злодей @ May 8 2009, 17:27) *
Здравствуйте! У меня снова "проблемы с выражением собственного хотения".
Код
A = 3
B = $(A)+2

Как сложить, что бы получить в B строку "5" а не "3+2"?


Используйте google.com со словами 'command line calculator linux'

dc, bc, expr

Анатолий.
Go to the top of the page
 
+Quote Post
alx2
сообщение May 9 2009, 23:28
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(Злодей @ May 8 2009, 18:27) *
Как сложить, что бы получить в B строку "5" а не "3+2"?
Насколько я помню, make не вычисляет арифметические выражения. Для этого можно воспользоваться средствами шелла:
Код
B=`${SHELL} -c "echo $$((${A}+2))"`

Или даже так, если совместимость с другими make (кроме гнутого) не требуется:
Код
B:=$(shell echo $$((${A}+2)))


Сообщение отредактировал alx2 - May 9 2009, 23:33


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
dxp
сообщение May 11 2009, 08:04
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(alx2 @ May 10 2009, 06:28) *
Насколько я помню, make не вычисляет арифметические выражения. Для этого можно воспользоваться средствами шелла:
Код
B=`${SHELL} -c "echo $$((${A}+2))"`

Вот поэтому (и еще по ряду причин) я с него и слез в пользу SCons'а. smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016