![]() |
|
Модераторы: xvr |
![]()
|
|
| sergioK1 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
возникла проблема , начал искать делаю как тут http://codingfreak.blogspot.com/2009/12/cr...braries-in.html
все файлы в одной директори компилю
пробовал и gcc -o test main.c -lcalc_mean -L/. хоть стреляйся получаю /usr/bin/ld: cannot find -lcalc_mean collect2: ld returned 1 exit status вот список файлов
Не понимаю |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
а так?: gcc main.c -o main ./libcalc_mean.so
|
|||
|
||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
так да работает А почему первый вариант не рабочий ? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
потому что ключик '-l' приказывает линкеру искать файлы с расширением '.a'
|
|||
|
||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
дак а в том линке что и в других источниках также пишут , врут ? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
нет. это я наврал) выполни в консоли, и покажи вывод: echo $pwd |
|||
|
||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
echo $PWD конечно не pwd /home/sergioK/CPrograms/SystemCalls/Broken/shareLib бинарник создает , но при попытке запуска ругает libcalc_mean.so: cannot open shared object file: No such file or directory |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
это поможет: http://en.wikipedia.org/wiki/Rpath |
|||
|
||||
| sergioK1 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
пока что твой вариант вполне thanks |
||||
|
|||||
| rsm |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
а) рекомендуется поменять местами -l и -L, хотя в данном случае не суть важно; б) аргументом ключа -L должна быть точка или $PWD, ибо /. - это бред, такой путь существовать не может; И да, rpath - вещь хитрая и специфическая. Лучше забыть про нее до тех пор, пока не возникнет прямая необходимость в кросс-компиляции.
Библиотеки ищутся в каталогах, перечисленных в /etc/ld.so.conf. Поэтому новую библитеку нужно либо поместить в один из этих каталогов и обновить кэш (man ldconfig), либо запускать бинарник с указанием пути к библиотеке:
В данном случае указано, что нужно искать динамические библиотеки в текущем каталоге. Это сообщение отредактировал(а) rsm - 29.5.2012, 04:13 |
||||
|
|||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
OK
Это сообщение отредактировал(а) sergioK1 - 29.5.2012, 15:05 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |