uname -m в разных дистрибутивах
Модератор: Модераторы разделов
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
uname -m в разных дистрибутивах
Вопрос в следующем:
Команда uname -a в Debian 64bit выдает строку "x86-64". Та же строка отображается во всех 64битных дистрибутивах?
ЗЫ Задача определить скрипт запущен на 64 или 32 битах. Может есть более праведный способ это сделать однозначно унифицировано для любого дистрибуттива?
Команда uname -a в Debian 64bit выдает строку "x86-64". Та же строка отображается во всех 64битных дистрибутивах?
ЗЫ Задача определить скрипт запущен на 64 или 32 битах. Может есть более праведный способ это сделать однозначно унифицировано для любого дистрибуттива?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
Lan4
- Сообщения: 339
- Статус: hikki
- ОС: Arch
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: uname -m в разных дистрибутивах
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: uname -m в разных дистрибутивах
расширенный ответ подразумевает встречный вопрос: какую именно информацию вам надо получить и с какой целью в дальнейшем использовать·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
deadhead
- Сообщения: 1913
- Статус: zzz..z
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: uname -m в разных дистрибутивах
все верно там подчеркивание. Это был не копипаст - опечатка 
Это для Qt проекта. Подготавливаю PRO файл к различным условиям компиляции. В т.ч. компилирование 32битного приложения на 64 битной системе в этой ситуации необходимо сделать дополнительные настройки.
В файле PRO я могу выполнить команду шела и результат засунуть в переменную. Которую потом проанализировать
Это для Qt проекта. Подготавливаю PRO файл к различным условиям компиляции. В т.ч. компилирование 32битного приложения на 64 битной системе в этой ситуации необходимо сделать дополнительные настройки.
В файле PRO я могу выполнить команду шела и результат засунуть в переменную. Которую потом проанализировать
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: uname -m в разных дистрибутивах
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: uname -m в разных дистрибутивах
sash-kan писал(а): ↑19.01.2012 15:54я так и догадался·
http://lists.debian.org/debian-russian/2011/03/msg00329.html
Я так понимаю это в Makefile. На момент когда мне это нужно мейкфайла еще нет вовсе. Хотя тоже вариант понятный
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: uname -m в разных дистрибутивах
ЕМНИП, то для qmake можно прописать условия в зависимости от архитектуры (Platform Scope).
Что-то типа:
unix:LIBS += -L/usr/local/lib -lmath
win32:LIBS += c:/mylibs/math.lib
Полный список у меня находится в /usr/share/qt4/mkspecs/
Что-то типа:
unix:LIBS += -L/usr/local/lib -lmath
win32:LIBS += c:/mylibs/math.lib
Полный список у меня находится в /usr/share/qt4/mkspecs/
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: uname -m в разных дистрибутивах
Это не совсем то. Мне нужно различать именно linux 32 и linux 64. (О чем я скоро можно будет посмотреть в том же репозитории
mkspecs это конечно оно. и когда идет обычная работа qmake все ок. Но вот собираю проект (на 64 разрядной системе) для 32 битной и запускаю qmake
следующим образом
Код: Выделить всё
qmake -spec linux-g++-32Этот заставлет использовать тот самый файл, что вы сказали. При этом в pro файле можно ставить условия:
Код: Выделить всё
linux-g++-64{
message(For x86_64)
}
linux-g++-32{
message(For x86)
}В случае коомпиляции для 32 на 64 битах. Будет сообщение "For x86"...... А мне внутри этого блока нужно определить если запущенно на 64 битной системе то дополнительные данные (например пути к 32 битным либам. (если компиить на 32 для 32 - это не нужно). вариант с uname -m отлично работает на Дебиан вот я и выяснял не порушиться ли он где то
Сейча примерно так
Код: Выделить всё
UNAME = $$system(uname -m)
linux-g++-64{
message(For x86_64)
}
linux-g++-32{
message(For x86)
eval( UNAME = x86_64) : message(on x86-64 system)
}PS облом....... "on x86-64 system" выдает даже если поставить x8699
UPD pps это я дурак.... Открывающую скобку перенес на другую строку. Зато нашел замену для eval - equals
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: uname -m в разных дистрибутивах
хм, а при чём тут makefile?
вас смутило написание имени c-compliler-а?
ну, вызывайте его как "cc"·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: uname -m в разных дистрибутивах
Не не. Все нормально. За совет спасибо.
ТО была первая реакция. Потом осознал, что можно так же использовать.
Хотя, об варианта кажутся равнозначными.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: uname -m в разных дистрибутивах
второй — это вывод uname?
могу, конечно, заблуждаться, но с помощью uname вы получите информацию о ядре, а не об операционной системе·
а это, вообще-то, несколько разные вещи·
если, например, вы собираете модуль для ядра, или что-то, непосредственно с ядром взаимодействующее, то, конечно, нужна информация о ядре·
а если что-нибудь прикладное компилируете, то вам нужна информация об операционной системе, с которой и будет взаимодействовать ваша программа·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: uname -m в разных дистрибутивах
ЕСли так, то конечно логично. Хотя может ли быть ядро 64, а ОС 32 (или наоборот)?
Опять же такие вопросы (как то даже не озадачивался) возникают:
А обязательно (при условии, что компилятор способный скомпилировать мой код установлен в системе) присутствует cc или gcc?
Всегда оба или какойто есть точно и всегда?
Или может быть другой компилятор?
Как определить какой есть?
И т.п.
(Правда на эту тему даже не гуглил пока)
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: uname -m в разных дистрибутивах
сс всегда должен быть в POSIX системе, а gcc -- как получится.
У меня всё нормально работает и без дополнительных настроек. Видимо я что-то делаю не так.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: uname -m в разных дистрибутивах
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: uname -m в разных дистрибутивах
наличие cc — это как бы обязательное условие для компиляции программы, написанной на c·
в реальной жизни это, как правило, симлинк на актуальный компилятор·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: uname -m в разных дистрибутивах
А где вы указываете пути где искать 32 bitные libqt*.so ?
Ок. Спасибо.
Убедили.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: uname -m в разных дистрибутивах
Но у вас 64bit ная ОС? И мы говорим о компиляции 32bit ной версии?
(Makefile я вообще руками не трогаю)
UPD Трындец......... Теперь и у меня компилируется...... А вчера выдавало что не может найти либу...........
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?