Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Share Library, не находит  
V
    Опции темы
sergioK1
Дата 28.5.2012, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



возникла проблема , начал искать делаю как тут http://codingfreak.blogspot.com/2009/12/cr...braries-in.html

все файлы в одной директори компилю 
Код

 gcc main.c -o main  -lcalc_mean  -L/$pwd 


 пробовал и gcc -o test main.c   -lcalc_mean  -L/.

хоть стреляйся получаю 


/usr/bin/ld: cannot find -lcalc_mean
collect2: ld returned 1 exit status

вот список файлов 

Код

  drwxr-xr-x 2  sergioK 4096 2012-05-28 22:15 ./
drwxr-xr-x 4 sergioK sergioK 4096 2012-05-28 19:36 ../
-rw-r--r-- 1 sergioK sergioK   62 2012-05-28 21:41 calc_mean.c
-rw-r--r-- 1 sergioK sergioK 107 2012-05-28 21:41 calc_mean.h
-rw-r--r-- 1 sergioK sergioK  1104 2012-05-28 22:15 calc_mean.o
-rwxr-xr-x 1 sergioK sergioK  6740 2012-05-28 22:15 libcalc_mean.so*
-rw-r--r-- 1 sergioK sergioK   242 2012-05-28 21:40 main.c




 Не понимаю 
PM MAIL   Вверх
boostcoder
Дата 28.5.2012, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



а так?: gcc main.c -o main ./libcalc_mean.so

PM WWW   Вверх
sergioK1
Дата 28.5.2012, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @ 28.5.2012,  21:27)
а так?: gcc main.c -o main ./libcalc_mean.so

так да работает 
А почему первый вариант не рабочий ? 
PM MAIL   Вверх
boostcoder
Дата 28.5.2012, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



потому что ключик '-l' приказывает линкеру искать файлы с расширением '.a'

PM WWW   Вверх
sergioK1
Дата 28.5.2012, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @ 28.5.2012,  21:52)
потому что ключик '-l' приказывает линкеру искать файлы с расширением '.a'

дак а в том линке что
и в других источниках также пишут , 
врут ? 

PM MAIL   Вверх
boostcoder
Дата 28.5.2012, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата(sergioK1 @  28.5.2012,  22:58 Найти цитируемый пост)
врут ?

нет. это я наврал)
выполни в консоли, и покажи вывод: echo $pwd

PM WWW   Вверх
sergioK1
Дата 28.5.2012, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @ 28.5.2012,  22:05)
Цитата(sergioK1 @  28.5.2012,  22:58 Найти цитируемый пост)
врут ?

нет. это я наврал)
выполни в консоли, и покажи вывод: echo $pwd

echo $PWD конечно  не pwd 
/home/sergioK/CPrograms/SystemCalls/Broken/shareLib

бинарник создает ,
но при попытке запуска ругает  libcalc_mean.so: cannot open shared object file: No such file or directory



PM MAIL   Вверх
boostcoder
Дата 28.5.2012, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата(sergioK1 @  28.5.2012,  23:15 Найти цитируемый пост)
libcalc_mean.so: cannot open shared object file: No such file or directory

это поможет: http://en.wikipedia.org/wiki/Rpath
PM WWW   Вверх
sergioK1
Дата 28.5.2012, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @ 28.5.2012,  22:18)
Цитата(sergioK1 @  28.5.2012,  23:15 Найти цитируемый пост)
libcalc_mean.so: cannot open shared object file: No such file or directory

это поможет: http://en.wikipedia.org/wiki/Rpath


пока что твой вариант вполне 
thanks 

PM MAIL   Вверх
rsm
Дата 29.5.2012, 03:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 3
Всего: 62



Цитата(sergioK1 @  29.5.2012,  00:21 Найти цитируемый пост)
gcc -o test main.c -lcalc_mean -L/.

а) рекомендуется поменять местами -l и -L, хотя в данном случае не суть важно;
б) аргументом ключа -L должна быть точка или $PWD, ибо /. - это бред, такой путь существовать не может;

И да, rpath - вещь хитрая и специфическая. Лучше забыть про нее до тех пор, пока не возникнет прямая необходимость в кросс-компиляции.

Цитата(sergioK1 @  29.5.2012,  01:15 Найти цитируемый пост)
бинарник создает, но при попытке запуска ругает libcalc_mean.so: cannot open shared object file: No such file or directory

Библиотеки ищутся в каталогах, перечисленных в /etc/ld.so.conf. Поэтому новую библитеку нужно либо поместить в один из этих каталогов и обновить кэш (man ldconfig), либо запускать бинарник с указанием пути к библиотеке:

Код

$ LD_LIBRARY_PATH=. ./binary_name

В данном случае указано, что нужно искать динамические библиотеки в текущем каталоге.

Это сообщение отредактировал(а) rsm - 29.5.2012, 04:13
PM MAIL   Вверх
sergioK1
Дата 29.5.2012, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



OK

Это сообщение отредактировал(а) sergioK1 - 29.5.2012, 15:05
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.