Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Linux начинающему
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Страницы: 1, 2, 3
mdmitry
Цитата(xor.kruger @ Oct 23 2013, 10:20) *
... и их скриптов, которые заточены под определенный дистр.

так об этом и речь. Заточка обычно под RHEL.
xor.kruger
Цитата
так об этом и речь. Заточка обычно под RHEL.

Мне кажется, что это очень плохо, когда выбор дистрибутива закреплен за набором скриптов, которые программист не удосужился написать универсальными.
andrew_b
Цитата(xor.kruger @ Oct 23 2013, 13:38) *
Мне кажется, что это очень плохо, когда выбор дистрибутива закреплен за набором скриптов, которые программист не удосужился написать универсальными.
Производитель поддерживает только определённый список дистрибутивов. В основном там RH. Это бизнес, ничего личного.
Tarbal
Цитата(xor.kruger @ Oct 23 2013, 10:20) *
Работаю в Debian c Xilinx ISE и иже с ними уже более 4 лет. Все отлично. Да, иногда приходится плясать с бубном, но это не из-за дистрибутива, а из-за индусских кодописателей и их скриптов, которые заточены под определенный дистр.

Мне кажется информацию нужно черпать с официальных источников.

ЗЫ: Вот все кричат Ubuntu, Ubuntu, а какие реальные преимущества, например, перед тем же Debian ?



Есть много мелких вопросов на которые нет ответа в официальных источниках, профессионал сможет разобраться, а начинающий нет. Да собственно и мне уже не начинающему не доставляет особого кайфа вместо проблемы, которую надо решать, приходится отдавать дань принципиально спартанскому образу жизни поклонников неудобных инструментов.
Начинающему легче Гуглом найти, чем рыться в официальных документах и пытаться понять как то, что там написано примеить к решению моей проблемы. И то ли это или нет.
У меня и у знакомых Дебиан вставал криво и надо было многое руками делать. Ведь речь не о том как профессионал может использовать даже Дебиан, а о том, где меньше плясок с бубном. Убунту однозначно лучше вылизана под пользователя.

Дебиан содержится в Убунту как подмножество sm.gif

Цитата(sasamy @ Oct 23 2013, 10:30) *
а вообще - лучше Ubuntu 10.04 ничего нет sm.gif

Мне она тоже нравится. К сожалению ее поддержка уже закончилась.


Цитата(sasamy @ Oct 23 2013, 10:30) *
PPA, дизайн, быстрый поиск решений проблем, лучшая поддержка чем у дебиана от сторонних компаний - практически все тестируется на Ubuntu.


В ATI сам видел тестовое оборудование на Убунту.
Уже и смартфоны на Убунту есть, однако пока сырые. Во всяком случае на Андроид телефон можно установить Убунту вместо Андроида.

Что меня удивило и даже напрягло, там есть своп партишн.
berkl
Цитата(Tarbal @ Oct 7 2013, 15:49) *
Кстати да.
Если вас устраивает текстовый лог, то воспользуйтесь сислогом. В программе на С есть функция записать строку в сислог, а в конфигурации сислога укажите файл куда писать эти специфические сообщения. Довольно просто и стандартно. Можно параллельно еще на удаленный компьютер посылать сообщения и там сислогом их записывать. Можно даже и не писать программу, а из скрипта посылать сообщения в сислог.

"Все уже украдено до нас" (С)


Привет,

Посмотрел я сислог, и не понял, а что в нем системного , собственно ? Ведь если лог - системный, то мне кажется и сообщения в лог должна сама система кидать. Ну там, может ядро на что-то ругнется туда или стэк или УАРТ, незнаю... Но это должно без меня происходить, а ?

А я здесь вижу, syslog работает абсолютно как printf ! Еще там openlog есть, думал там может чего. На поверку оказалось - нет, его вобще можно не вызывать. То есть лог формирую я сам, ручками, какой же он тогда СИСлог ?
Или я чего то не понимаю.

Еще вопросик.

Хочется попробовать сенсорный экран поюзать.
1.Где бы подешевле купить, с разъемом hmdi ? Чтоб не большой был, от 7 дюймов и меньше. Резистивный, емкостный - пофиг, мне поучиться.
2. Думаю поднять его с помощью GTK+, поскольку GTK уже использую для ГУИ, а пишут что с версии 3.4 есть поддержка сенсоров там. Но я ничего не нашел, ни доков ни примеров использования. Может заморачивался кто, дайте пинок, плз

Спасибо
andrew_b
Цитата(berkl @ Nov 5 2013, 09:24) *
Посмотрел я сислог, и не понял, а что в нем системного , собственно ? Ведь если лог - системный, то мне кажется и сообщения в лог должна сама система кидать.
man 5 syslog.conf
BvDV
Цитата(DASM @ Oct 23 2013, 08:56) *
Для работы с САПР советую ставить Виндовс wink.gif А на деле оказался в печальной ситуации с двумя компами, ибо ни виртуалка, ни мультибут — не панацея. Ставьте Убунту 13, поддержка нормальная, а секс от установки всяких квартусов заменит вам курс молодого бойца. Хотя тот же Матлаб встал без запинки.

Хотел бы спросить, какие могут быть проблемы если основная ось Линукс а виртуалка Винда?
Tarbal
Не ворчите. Смотрите на сислог как на логгер предоставленный системой и вам сразу станет легче.


Цитата(BvDV @ Nov 5 2013, 11:27) *
Хотел бы спросить, какие могут быть проблемы если основная ось Линукс а виртуалка Винда?


С виртуалкой бегущей на Линуксе и установкленной гостевой системой Виндоус проблем быть не должно.
Idle
Цитата(BvDV @ Nov 5 2013, 12:27) *
Хотел бы спросить, какие могут быть проблемы если основная ось Линукс а виртуалка Винда?

Неработающий DirectX в винде. Virtualbox не умеет делать Direct3D.
BvDV
Цитата(Idle @ Nov 6 2013, 08:55) *
Неработающий DirectX в винде. Virtualbox не умеет делать Direct3D.

А где кроме игр может понадобится Direct3D? Altium вроде требует для 3D прорисовки плат.
berkl
Цитата(andrew_b @ Nov 5 2013, 10:37) *
man 5 syslog.conf



Цитата(Tarbal @ Nov 6 2013, 07:36) *
Не ворчите. Смотрите на сислог как на логгер предоставленный системой и вам сразу станет легче.



Да я и не ворчу biggrin.gif Вроде ясно стало. Добавлять записи в системные логи может и сам пользователь (то есть я) и линукс. Источники информации идущей от операционки настраиваются в Убунте /etc/rsyslog.d/50-default.conf
Idle
Цитата(BvDV @ Nov 6 2013, 10:16) *
А где кроме игр может понадобится Direct3D? Altium вроде требует для 3D прорисовки плат.

А везде где есть рендеринг. Некоторые видеоплееры используют. Насчёт кадов не скажу.
Но это VirtualBox. В ворованном VmWare может и это работает.
alx2
Цитата(berkl @ Nov 5 2013, 10:24) *
А я здесь вижу, syslog работает абсолютно как printf ! Еще там openlog есть, думал там может чего. На поверку оказалось - нет, его вобще можно не вызывать. То есть лог формирую я сам, ручками, какой же он тогда СИСлог ?
Или я чего то не понимаю.

syslog/syslogd за Вас делают целый ряд вещей:
- добавляют к сообщениям дату/время;
- добавляют к сообщениям имя хоста, с которого пришло сообщение;
- добавляют facility и идентификационную строку отправителя;
- добавляют PID процесса;
- дублируют сообщения на консоль и в stderr;
- фильтруют и раскладывают приходящие сообщения по разным файлам и пересылают их на другие хосты, передают на обработку скриптам и т.п....
Особо продвинутые логгеры имеют много других возможностей (смотрите, например, syslog-ng).

У Вас есть выбор - использовать готовое решение или придумать свое собственное. У каждого из этих вариантов есть свои плюсы и минусы.

По поводу openlog() - да, Вы можете его не использовать. Но тогда Вы лишаетесь возможности задать для отправляемых сообщений facility, идентификационную строку и опции.

И да, ядро тоже пишет свои сообщения в syslog.
berkl
Приветствую,

Если делать самому файл сборки (makefile, cmake...) или в среде разработки не пользоваться плагинами, то приходится самому указывать линкеру названия библиотек, которые надо подключать к проекту. Вопрос: где узнать имя подключаемой библиотеки? Хорошо если есть .pc файл и знаешь его название. Там всё есть. А если нету ? Вот, понадобился мне синус. Он в заголовке math.h описан. А название либы где взять ? .pc файл для неё может и есть, но я не знаю как он называется хотя где искать его подскажет man pkg-config.
Пробовал aptitude search math , там столько всего вывалилось.... Не помогло, в общем.
После гугления, нашел, что библиотека эта, называется m, просто m. А как по-человечески надо было узнать название библиотеки, а не через одно место ?

Спасибо!
Ixt
Цитата(berkl @ Nov 8 2013, 11:09) *
Вот, понадобился мне синус. Он в заголовке math.h описан. А название либы где взять ?


Цитата("man sin")
SIN(3) Linux Programmer's Manual SIN(3)

NAME
sin, sinf, sinl - sine function

SYNOPSIS
#include <math.h>

double sin(double x);
float sinf(float x);
long double sinl(long double x);

Link with -lm.

Tarbal
Цитата(berkl @ Nov 8 2013, 11:09) *
После гугления, нашел, что библиотека эта, называется m, просто m. А как по-человечески надо было узнать название библиотеки, а не через одно место ?

имя файла libm.so и libm.a в строке компилятора указать: -lm
berkl
Цитата(Tarbal @ Nov 9 2013, 01:23) *
имя файла libm.so и libm.a в строке компилятора указать: -lm


Да, да. Но из моих исходных условий есть название функции и заголовочника. А можно узнать имя файла библиотеки по этим условиям ?


Спасибо!

Через маны значит можно. Ясно, спасибо Ixt
berkl
Цитата(Tarbal @ Aug 27 2013, 16:16) *
Однако зачастую при компиляции на стадии ./configure появляются сообщения об ошибках. Мол отсутствует пакет. В большинстве случаев это стандартная библиотека.
В таком случае надо поступить следующим образом:
допустим отсутствует библиотека bison.
apt-cache search bison

изучите список программ и установите то, что подходит при помощи команды
sudo apt-get install имя_из_списка_предыдущей_команды

По мере поступления проблем спрашивайте.


Как раз такая ситуация - чего то не хватает. По порядку. Захотел попробовать отображение графиков. Для строительства GUI выбрал gtk+. Нативных виджетов для графиков я в ней не нашел, наткнулся в Сети на GtkDatabox http://www.eudoxos.de/gtk/gtkdatabox/ Скачал gtkdatabox-0.9.0.1, судя по readme.txt встает она стандартно (./configure, make, make install). Запустил
./configure, в конце получил следующее:

Цитата
Install libglade-2.0 module: no
Install glade-3 module: no


После прочтения ./configure -h , запустил ./configure --enable-libglade --enable-glade
Получил в конце следующее:

Цитата
Install libglade-2.0 module: yes
Install glade-3 module: no


Дальше сдвинуться не удалось. Полная распечатка в приложении. К слову сказать glade3 у меня установлен. Помучавшись, пошел в репозиторий (Центр приложений), gtkdatabox там нашлась. Поставил её оттуда в один клик мыши, графики отображаются. То есть на самом деле у меня есть всё что нужно для успешной установки. Почему тогда из под консоли не устанавливается ? Бросить вопрос нерешенным не могу, так как нужно будет её же компилировать под АРМ.

Спасибо
mdmitry
Цитата(berkl @ Nov 10 2013, 22:49) *
К слову сказать glade3 у меня установлен. Помучавшись, пошел в репозиторий (Центр приложений), gtkdatabox там нашлась. Поставил её оттуда в один клик мыши, графики отображаются. То есть на самом деле у меня есть всё что нужно для успешной установки. Почему тогда из под консоли не устанавливается ? Бросить вопрос нерешенным не могу, так как нужно будет её же компилировать под АРМ.

В log-файле разве на GLADE нет ругани из-за его отсутствия? Из репозитория автоматом могут браться недостающие зависимости. А какой дистрибутив у Вас? Часто нужен для разработки пакет somename-devel, а не просто somename. Это может зависеть от дистрибутива.
berkl
Цитата(mdmitry @ Nov 10 2013, 23:34) *
В log-файле разве на GLADE нет ругани из-за его отсутствия? Из репозитория автоматом могут браться недостающие зависимости. А какой дистрибутив у Вас? Часто нужен для разработки пакет somename-devel, а не просто somename. Это может зависеть от дистрибутива.


Ругается.

Цитата
........
checking for GLADE3... no
not found
.........



По рекомендации уважаемого Тарбала делал:

Цитата
dim@dim-System-Product-Name:~$ apt-cache search GLADE3
libgtkdatabox-0.9.1-1-glade - Gtk+ library to display large amounts of numerical



Затем:

Цитата
dim@dim-System-Product-Name:~$ sudo apt-get install libgtkdatabox-0.9.1-1-glade
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлена самая новая версия libgtkdatabox-0.9.1-1-glade.
Следующие пакеты устанавливались автоматически и больше не требуются:
linux-headers-3.8.0-19 linux-headers-3.8.0-19-generic linux-image-3.8.0-19-generic linux-image-extra-3.8.0-19-generic
Для их удаления используйте «apt-get autoremove».
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.



То есть получается GLADE3 установлен, я так понимаю....

Про версию Убунты, знаю только что она 13.04 . Надо гле-то уточнить девелоп/недевелоп она.


berkl

Забыл отписаться.

Скомпилировал её, не мытьем, так катаньем. В дистрибутиве виджета есть 2 папки с исходниками. Одна (gtk) собственно с исходниками библиотеки, вторая (glade) - с исходниками привязки библиотеки к Glade. Глейдом я не пользуюсь (пока во всяком случае), поэтому взял *.с и *.h из папки gtk и скомпилировал их своим makefile (точнее своим cmake) в динамическую библиотеку. Проверил, всё работает, а на glade - пофиг.
Тем временем, наткнулся на другой Gtk библиотеку для отображения графиков http://sourceforge.net/projects/giw/. Тут поинтереснее уже. Плюсом к графикам есть стрелочные, столбиковые индикаторы. прикольно, надо будет попробовать. Но это так, к слову.

Попутно хочу вот еще что спросить. Как, в общих чертах, переносится программа на целевую машину. Допустим, программа написана для АРМ. Программа использует дин. библиотеки. Как быть с этими библиотеками ?

1. Копировать с инструменталки готовые (кросскомпилированные) библиотеки в файловую систему линукса АРМа ?
или
2. Их надо прям на самой плате компилировать, нативным, АРМовским gcc ?
или
3. Или как ?

Если первый вариант, то как это правильно делать ? Ну не руками же их папок выдергивать .so файлы и перетаскивать ?
Если второй вариант, то не будет ли проблем с совместной работой программы, собранной кросскомпилятором инструменталки и библиотеками, собранными компилятором Линукса целевой платы ?

Еще вопросик. Дистрибутив Линукса АРМ платы собирается на инструменталке тем же компилятором, которым в последствие будут компилироваться программы пользователя или нет?

Спасибо!
Tarbal
Цитата(berkl @ Nov 17 2013, 12:10) *
Забыл отписаться.

Скомпилировал её, не мытьем, так катаньем. В дистрибутиве виджета есть 2 папки с исходниками. Одна (gtk) собственно с исходниками библиотеки, вторая (glade) - с исходниками привязки библиотеки к Glade. Глейдом я не пользуюсь (пока во всяком случае), поэтому взял *.с и *.h из папки gtk и скомпилировал их своим makefile (точнее своим cmake) в динамическую библиотеку. Проверил, всё работает, а на glade - пофиг.
Тем временем, наткнулся на другой Gtk библиотеку для отображения графиков http://sourceforge.net/projects/giw/. Тут поинтереснее уже. Плюсом к графикам есть стрелочные, столбиковые индикаторы. прикольно, надо будет попробовать. Но это так, к слову.

Попутно хочу вот еще что спросить. Как, в общих чертах, переносится программа на целевую машину. Допустим, программа написана для АРМ. Программа использует дин. библиотеки. Как быть с этими библиотеками ?

1. Копировать с инструменталки готовые (кросскомпилированные) библиотеки в файловую систему линукса АРМа ?
или
2. Их надо прям на самой плате компилировать, нативным, АРМовским gcc ?
или
3. Или как ?

Если первый вариант, то как это правильно делать ? Ну не руками же их папок выдергивать .so файлы и перетаскивать ?
Если второй вариант, то не будет ли проблем с совместной работой программы, собранной кросскомпилятором инструменталки и библиотеками, собранными компилятором Линукса целевой платы ?

Еще вопросик. Дистрибутив Линукса АРМ платы собирается на инструменталке тем же компилятором, которым в последствие будут компилироваться программы пользователя или нет?

Спасибо!


Я пользуюсь первым методом. Скомпилировав и установив в sandbox я потом просто копирую все в корень моей target машины.
На второй вопрос ответ такой. Я так и делаю, но не уверен, что не может быть нюансов.

berkl
Цитата(Tarbal @ Nov 18 2013, 16:51) *
Я пользуюсь первым методом. Скомпилировав и установив в я потом просто копирую все в корень моей target машины.
На второй вопрос ответ такой. Я так и делаю, но не уверен, что не может быть нюансов.


Спасибо

А если Вы установили с десяток всяких библиотек на свою плату и вообще настроили АРМовый Линукс под себя. Можно ли сохранить его в таком состоянии, чтобы потом на вторую плату не устанавливать опять всё по шаг за шагом, а разом прошить всё в NAND или SD карточку?
Tarbal
Цитата(berkl @ Nov 19 2013, 09:36) *
Спасибо

А если Вы установили с десяток всяких библиотек на свою плату и вообще настроили АРМовый Линукс под себя. Можно ли сохранить его в таком состоянии, чтобы потом на вторую плату не устанавливать опять всё по шаг за шагом, а разом прошить всё в NAND или SD карточку?


Скопируйте образ диска и потом записывайте ее. Копирование образа сопряжено с использованием команды dd, которая не прощает ошибок.
Можно скопировать только файловую систему.

1. создаем две директории:
mkdir mnt; mkdir rootfs

2. Монтируем партишн в которой наша рут файловая система (/dev/sdc1 может быть другая буква вместо с и другая цифра. Вы сами найдите какая партишн появляется в вашей системе. Если не знаете как, то я расскажу.)
sudo mount /dev/sdc1 mnt

3. Копируем с приведенными ключами команды.
sudo scp -arp mnt/* rootfs
sync
4. Размонтируем и убираем диск.
sudo umount /dev/sdc1

5. Вставляем диск, с созданной и отформатированной партишн. Монтируем партишн
sudo mount /dev/sdc1 mnt

Копируем на диск.
sudo scp -arp rootfs/* mnt
sync
sudo umount /dev/sdc1

Вынимаем готовый диск.
На самом деле иногда бывает надо записать еще кернел и бут лоадер. Но это уже другой вопрос.


После команды sync компьютер может надолго задуматься. Это нормально. надо дождаться, окончания команды.

Это было для SD карточки. Если же память впаяна и нет возможности стартануть систему с внешней SD карточки или USB диска, то надо создать копию вашей файловой системы на каком-нибудь компьютере, а бут лоадер сконфигурировать (точнее командную строку кернела), чтобы при старте кернел монтировал эту удаленную рут файловую систему по NFS.
Установите свои библиотеки уже после этого. Кстати зачастую сорсы библиотек не нужны. Возможно неплохо будет удалить их перед копированием.
berkl
Приветствую,

Вопрос такой. Можно ли собрать проект на большом Линуксе с объектниками библиотек, скаченных с Линукса целевой платы? Прям взять по SSH скачать нужные для сборки либы и подсунуть их кросскомпилятору rolleyes.gif

К примеру, есть у меня в программе что-нибудь графическое на "иксах"
Код
....display = XOpenDisplay(0);.....
Я выкачиваю из борды Xlib.so и подсовываю её кросстулчейну инструменталки. Будет такое работать sm.gif ?


Спасибо!
Lagman
Цитата
Динамическая библиотека - это созданная специальным образом библиотека, которая присоединяется к результирующей программе в два этапа. Первый этап, это естественно этап компиляции. На этом этапе линковщик встраивает в программу описания требуемых функций и переменных, которые присутствуют в библиотеке. Сами объектные файлы из библиотеки не присоединяются к программе. Присоединение этих объектных файлов(кодов функций) осуществляет системный динамический загрузчик во время запуска программы. Загрузчик проверяет все библиотеки прилинкованные с программе на наличие требуемых объектных файлов, затем загружает их в память и присоединяет их в копии запущенной программы, находящейся в памяти.

В Linux, обычно, динамические библиотеки имеют расширение ".so".

http://www.firststeps.ru/linux/r.php?8
berkl
Цитата(Lagman @ Jan 6 2014, 23:15) *


Извините, я вас не понял wacko.gif . По существу вопроса выскажитесь плиз
Canis Dirus
Цитата(berkl @ Jan 6 2014, 22:06) *
К примеру, есть у меня в программе что-нибудь графическое на "иксах"
Код
....display = XOpenDisplay(0);.....
Я выкачиваю из борды Xlib.so и подсовываю её кросстулчейну инструменталки. Будет такое работать sm.gif ?

Если в принципе — да (вот пример подобного для gcc). А вот в корпусе вам ведь ещё потребуются заголовочные файлы от этой библиотеки.
Lagman
Цитата(berkl @ Jan 7 2014, 01:07) *
Извините, я вас не понял wacko.gif . По существу вопроса выскажитесь плиз

Я дал направление, что есть два вида библиотек, в вашем случае это динамическая библиотека, и дал ссылку как надо открывать и работать с этим видом библиотек. Далее гуглояндекс в помощь.
IMHO для кросскомпиляции эта .so вам не нужна, нужен заголовочный файл от этой библиотеки и правильно ее открыть и работать.
http://www.ibm.com/developerworks/ru/libra...amic-libraries/
berkl
Цитата(Lagman @ Jan 7 2014, 15:50) *
Я дал направление, что есть два вида библиотек, в вашем случае это динамическая библиотека, и дал ссылку как надо открывать и работать с этим видом библиотек. Далее гуглояндекс в помощь.
IMHO для кросскомпиляции эта .so вам не нужна, нужен заголовочный файл от этой библиотеки и правильно ее открыть и работать.
http://www.ibm.com/developerworks/ru/libra...amic-libraries/


Всё, я понял. Динамическую либу можно подключать к проекту как обычным способом (линковать make'ом, например), так и прям внутри кода своей программы (с помощью линуксовой либы dl ). В этом случае, для успешной компиляции программы, подключаемая библиотека живьем действительно не нужна. Да и заголовочник либы думаю нужен только если в нем дефайны какие-то есть. Ловко.
Для кросскомпиляции, наверное надо скопировать на инструменталку с целевой платы файлы dl.so и dlfcn.h, в папку проекта и указать мэйку путь к ним. Иначе под arm не соберется. Нашел, dl есть прямо в кросс тулчейне, можно (и наверно правильно) использовать её. Может как то поизящней можно, незнаю.

Вещь,чо!

Спасибо!
berkl
Для использования
Код
  void *dlopen( const char *file, int mode );
надо знать имя файла библиотеки. Как его можно узнать? В руководстве на библиотеку не всегда его можно найти, как тут, к примеру http://www.opennet.ru/docs/RUS/gtk-reference/ix01.html (будем считать что библиотека хоть и нестандартная, но идет предустановленной в дистрибутиве Линукса)

Где брать имена файлов системных библиотек тоже не ясно. Например, как узнать в каком хххх.so находится функция
Код
sin(double x);
?

Спасибо.
andrew_b
Цитата(berkl @ Jan 10 2014, 15:02) *
Например, как узнать в каком хххх.so находится функция
Код
sin(double x);
?
Читайте доки, они рулез.
Код
$ man sin

Код
SIN(3)                                        Linux Programmer's Manual

NAME
       sin, sinf, sinl - sine function

SYNOPSIS
       #include <math.h>

       double sin(double x);
       float sinf(float x);
       long double sinl(long double x);

       Link with -lm.
berkl
Цитата(andrew_b @ Jan 10 2014, 15:10) *
Читайте доки, они рулез.
Код
$ man sin

Код
SIN(3)                                        Linux Programmer's Manual

NAME
       sin, sinf, sinl - sine function

SYNOPSIS
       #include <math.h>

       double sin(double x);
       float sinf(float x);
       long double sinl(long double x);

       Link with -lm.



Не, не. Мне не надо имя либы которое используется при линковке( -lm ) Мне надо узнать что double sin(double x); в libm.so находится

Вот тут поднимался вопрос этот http://archlinux.org.ru/forum/topic/3665/. Предлагается использовать следующее

Цитата
# Ищем имя либы, по ф-ции gtk_init
nm -DA *.so* | grep -w gtk_init


У меня это не работает, выдает обшибку "nm: '*.so*': Нет такого файла"
mdmitry
Цитата(berkl @ Jan 10 2014, 15:48) *
У меня это не работает, выдает обшибку "nm: '*.so*': Нет такого файла"

А Вы эту команду запускаете в том каталоге, где лежат Вас интересующие библиотеки? В /usr/lib все сработает, а в /home/youname - нет при отсутствии файлов *.so*. Насколько я понимаю, это утилита не использует системные переменные для поиска файлов библиотек.
Canis Dirus
Цитата(berkl @ Jan 10 2014, 17:48) *
У меня это не работает, выдает обшибку "nm: '*.so*': Нет такого файла"

man find:
CODE
➜ ~ find /usr/lib -name '*gtk*so*' -type f -exec nm -DA '{}' \; |grep "gtk_init"
/usr/lib/python2.6/dist-packages/gtk-2.0/gtk/_gtk.so: U gtk_init_check
/usr/lib/libreoffice/program/libvclplug_gtk3lo.so: U gtk_init
/usr/lib/libreoffice/program/libvclplug_gtk3lo.so: U gtk_init_check
/usr/lib/libreoffice/program/libvclplug_gtklo.so: U gtk_init_check
/usr/lib/alsaplayer/interface/libgtk2_interface.so: U gtk_init
/usr/lib/alsaplayer/interface/libgtk2_interface.so:000000000003cf30 T _Z18interface_gtk_initv
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.800.6:000000000018a350 T gtk_init
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.800.6:000000000018a320 T gtk_init_check
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.800.6:000000000018a150 T gtk_init_with_args
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.22:000000000012a190 T gtk_init
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.22:000000000012a740 T gtk_init_add
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.22:000000000012a160 T gtk_init_check
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.22:0000000000129fa0 T gtk_init_with_args
/usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0.8.0: U gtk_init_check
/usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0: U gtk_init_check
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/_gtk.so: U gtk_init_check

(В данном случае она ищет в директории /usr/lib все библиотечные файлы хоть как-то относящиеся к gtk и если находит, то запускает nm с соответствующим аргументом. Результат перенаправляется на вход команды grep).
berkl

Canis Dirus , mdmitry ,

Благодарю друзья, помогло.

Canis Dirus
Цитата(berkl @ Jan 11 2014, 14:30) *
Canis Dirus , mdmitry ,
Благодарю друзья, помогло.

А, вообще-то, если надо получить требуемые флаги для компилятора, то есть такая команда pkg-config (собственно в документации на gtk2 как раз она и рекомендуется: Compiling GTK+ Applications on UNIX)
berkl
Цитата(Canis Dirus @ Jan 11 2014, 16:58) *
А, вообще-то, если надо получить требуемые флаги для компилятора, то есть такая команда pkg-config (собственно в документации на gtk2 как раз она и рекомендуется: Compiling GTK+ Applications on UNIX)



Да, в свое время именно pkg-config и воспользовался (вытащил от туда всё что нужно моему мake'у). Всё собралось/запустилось без сучка и задоринки. Но самоцель - это использовать Gtk на АРМе. Вот тут и началось....
Сейчас у меня получилось собрать проектик на базе Gtk с использованием
Код
/* Open the shared object FILE and map it in; return a handle that can be
   passed to `dlsym' to get symbol values from it.  */
extern void *dlopen (const char *__file, int __mode) __THROW;


В мэйке программы у меня линкуется только, собственно, библиотека -dl, и все заголовочники (все скорее всего не надо) из
Цитата
$ pkg-config --cflags gtk+-2.0
. На писюке всё работает. Собрал под АРМ (собирать та нечего тут), всё нормально. Скоро плату куплю (cubieboard), попробую. На Lubuntu (если там gtk уже в дистрибутиве идет), по идее должна сразу заработать, поскольку пути к либам должны быть те же самые, что и на моей инструменталке.
berkl
Привет!

Вопрос про Линукс и VMware. Решил попробовать использовать Убунту 13.04 из под XP. Итак, Убунта - виртуальная машина с двумя виртальными LAN интерфейсами. Первый (eth0) используется для выхода в интернет, второй (eth1)- внутри локалки. Соответственно, в XP, в vmWare, создал две виртуальные сети, VMnet0 - мост между Убунту и локалкой, и VMnet8 - сеть с NAT и DHCP, для интернету. Убунта хорошо ходит в интернет (через eth0), сразу после её установки. eth1 убунты требует настройки, что я и пробую сделать:

Цитата
$ sudo gvim /etc/network/interfaces


редактирую interfaces следующим образом:

Цитата
iface eth1 inet static
address 192.168.60.20
netmask 255.255.255.0
gateway 192.168.60.1
auto eth1


192.168.60.20 - адрес eth1 убунты
192.168.60.1 - адрес физической сетевухи инструменталки


Так вот. Эти настройки не становятся актуальными. Пробую
Цитата
$ ifconfig -a
и вижу что там для eth1 ничего не изменилось. А Убунта больше не перезагружается. После попытки перезагрузить её, в процессе перезагрузки вижу сообщения "ubuntu waiting for network configuration" и затем "«Waiting for network configuration Waiting 60 seconds more...". Затем черный экран (в окне виртуалки) и тишина.... Переставлял виртуальную Убунту 3 раза, каждый раз тоже самое - гостевуха помирает после установки её параметров eth1 и её перезагрузки.

У меня на компе установлена та же 13.04 убунта, рядом с XP. Там никаких проблем с интерфейсами нет.
Вопрос: что не так с конфигурированием eth1, или может VMware ?

Спасибо.
kurtis
Уберите в параметрах загрузки убунты опцию "quiet" и "splash" и посмотрите что будет писать в консоль. Или в крайнем случае, можно загрузить в режиме восстановления в рутовую консоль и посмотреть где именно возникает ошибка.
berkl
Багу не нашел, но нашел как обойти.

После редактирования файла /etc/network/interfaces, сразу запустил перезагрузку настроек сетевых сервисов:

Цитата
sudo /etc/init.d/networking restart


Убунта ругнулась (см скриншот), консоль где ввел команду сама закрылась и всё зависло в таком положении. Перезагружаю, Убунта успешно загрузилась, с нужными настройками сети.

Буду пока так.
_Pasha
Хочу сделать, но не знаю как.
Запускаю
Код
time wine myApp.exe

Но вайн шумит консольным выводом, это не нравится.

Код
time wine myApp.exe &>/dev/null

Silent, всё прекрасно. Только time тоже silent sm.gif
А как его заставить выдавать результат в консоль? smile3046.gif
AHTOXA
Засунуть
Код
wine myApp.exe &>/dev/null

в скрипт myApp.sh, и затем
Код
time myApp.sh

?
Ну или скобочки там какие...
_Pasha
Цитата(AHTOXA @ Feb 17 2014, 13:42) *
Ну или скобочки там какие...

Оппаньки! А скобочки-то рулят! Т.е. правильный ответ
Код
time (wine myApp.exe &>/dev/null)


Гран мерси.
berkl
Привет!

У меня Убунта установлена рядом с Виндой. При загрузке компа выскакивала убунтовая менюшка в которой предлагалось выбрать что будем грузить: винду или убунту. Пришлось сегодня переустановить Винду, и теперь этой менюшки нет. Винда теперь запускается, не предоставляя выбора. Как запустит Убунту теперь ? Обе операционки установлены на один физический HDD.


Спасибо !
Lagman
Цитата(berkl @ Mar 13 2014, 17:47) *
Привет!

У меня Убунта установлена рядом с Виндой. При загрузке компа выскакивала убунтовая менюшка в которой предлагалось выбрать что будем грузить: винду или убунту. Пришлось сегодня переустановить Винду, и теперь этой менюшки нет. Винда теперь запускается, не предоставляя выбора. Как запустит Убунту теперь ? Обе операционки установлены на один физический HDD.


Спасибо !

надо восстановить загрузчик, https://help.ubuntu.com/community/Recoverin...stallingWindows
KBH
Цитата(xor.kruger @ Oct 23 2013, 10:20) *
Вот все кричат Ubuntu, Ubuntu, а какие реальные преимущества, например, перед тем же Debian ?

Стабильно падают дрова ATI-шных видюх: у меня ни один не проработал дольше недели.
А с Debian не интересно: поставил её, и работает себе, каши не просит. Скучно...
)
olgapet
При выборе дистрибутива полезно ответить себе и на такой вопрос: какие программы сторонних производителей будут необходимы и есть ли их версии для данного дистрибутива?
САПРы в основном ориентированы на RHEL и SUSE. Скорее всего будут нормально работать на сборках, основанных на них (например, CentOs, Scientific Linux).
gemuz
Хочу сразу поправить, т.к. мною было лично проверено.
Как ни странно, но сборки, которые за основу взяли RHEL, в частности 5 и 6 версии, ведут себя по разному с софтом. Было даже такое (с mentor), что некоторые продукты просто отказывались работать на сборках. В последнее время наблюдается тенденция к возврату к RHEL. Именно на 6.4-6.5 версиях почти не заметил глобаных проблем с софтом начиная с 2008 года, даже некоторы 2004 года работают прекрасно, если не требуется совместимость с ядрами 2.4.1. SLES 11 - стабильный, но уж сильно неповоротливый дистрибутив (сравнивал со RHEL 6.4).
Мой совет, скачать RHEL 6.4 - 6.5 и лучше качать два диска, так как в х64 версии попросту нет 32 битных библиотек. Их можно доставить с того же 32 битного диска :-) Репы берем от cetnos и все отлично работает.
VitiaM
Приветствую!

Вопросик по железу. Вот к примеру, зашел сюда:
http://www.embest-tech.com/shop/index.html

Вижу, например платы с Атмелом стОят 200-300$ А вот плата от Freescale http://www.embest-tech.com/shop/product/mars-board.html выглядет просто монстром, относительно Атмеловских, при этом стОит 100$ ! Как такое понять, где подковырка ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.