Про библиотеки в *nix

vertyal17

Я сам в линухах не рюхастый, может подскажите что делать:
Вобщем инсталлировал софт(globus который предоставляет типа api для написания приложений(вобщем мне нужны были функции из globus_ftp_client.h)
Типо написано, заинсталлил, теперь все будет зашибись, пиши в программе #include "globus_ftp_client.h" и пиши уже программы.
Написал прогу ftp.c
#include "globus_ftp_client.h"
main
{
}
Компилятор ругается, что не знает ничего про этот .h файл найти его не может
Тогда я сам поискал, нашел его в какойто *опе****/globus/include) там еще много разных *.h файлов, по идее тоже из числа тех API, что он должен обеспечивать.
0)Я так понимаю, путь к этой папочке должен был быть гдето прописан, чтобы компилятор там искал этот файл, как это сделать?
1)Вобщем тогда я пихнул мой файл ftp.c в эту самую папку, где все хранилось, и попробовал еще компильнуть, это может помочь?
По идее, в папке кроме *.h ничего нету, соотв. тел, для функций в них описанных я так понимааю тоже, поэтому мне кажется что такими методами все равно ничего бы не откомпилировалось.
2)Вобщем по идее, оно и так не компилировалось, потому что в globus_ftp_client-e есть еще #include файлов, который в той папке нет, но может есть еще где нибудь, как мне с этим разобратся?
Надо прогу написать, чтоб использовала эти библиотеки. Больше интересует вопрос 1 (типа если запихать ftp.c в папку с *.h сможет ли откомпилироваться)
Может ли помочь писать в проге #include "/home/...../globus/include/globus_ftp_client.h" ?

Chupa

В прошлый раз хуйню сказал
попробуй заюзать bin/globus-makefile-header и libexec/globus-build-env-*.sh

eduard615

0) gcc -I<path_to_header>
info gcc
1)да, может, но есть куча причин,по котрым это делать не надо. сам код лежит в либах, которые надо указывать при линковке: -L<path_to_lib> -l<имя_либы>
2)см. п.0

ppplva

Попробуй читать доки.
Как правило, это гораздо эффективней, чем учиться методом тыка.

vertyal17

Млин у меня нету в bin этого вообще % может надо установить что, бундл какой?
я у себя какбы в home/username поставил data managment SDK src bundle вроде установился,
есть папочка source c исходниками, а вот в bin нету нифига похожего на gcc*
может надо какой другой бундл установить?

vertyal17

Спасибо, вдруг пригодится %)

ppplva

Постой, ты его хоть компилировал ?
Там довольно долгий процесс, скриптовый инсталлятор, он сам все делает что надо. У них на сайте есть прекрасное описание процесса.
Не забудь указать флавор mpi-ный, если это тебе надо.

vertyal17

компилировал
с
gcc32dbg флавором, а что за мпишный? там на сайте написано этот юзать

ppplva

Смотря что тебе надо. Я собирал mpich-g2, там требовался gcc32mpi.

vertyal17

Я вообщето искал нормальные доки, на этом globus.org походу одна вода, почему мы решили так, наш взгял на сеть ...
а на http://www-unix.globus.org/api/c/globus_ftp_client/html/index.html
там вобщето както сжато все не поймешь какая функция куда
может подскаешь толковые доки по созданию приложений под gridFTP ? (там globus_ftp_client какойнибудь )
заранее благодарен

ppplva

По твоей ссылке - великолепная дока, просто мечта программиста! Если бы ко всем софтинам были такие доки...

vchikvin

Попробуй читать доки.
Как правило, это гораздо эффективней, чем учиться методом тыка.
Спросить на форуме зачастую ещё эффективнее

guestperm

"Спросить на форуме" зачастую выливается в увлекательное представление типа "джага-джага".

squeeze

все элеметнарно, ватсон %)
пусть папка где у тебя лежат глобусные хедеры /path/to/globus
тогда ты в своей проге ничего не меняешь
а при компиляции указываешь
gcc -I/path/to/globus (это большая буква i)
но скорее всего он не найдет либы когда будет линкать для этого есть ключи
-L/path/to/globus/lib и -l<globuslibname> (тут уже маленькая буква L)
<globuslibname> - это составная часть имени после слова lib в названии файла библиотеки %)
вот и все %)
а ваще если кинуть хедеры в /usr/include/globus а либы в /usr/lib
то можно просто писать #include <"globus/header.h">
ну короче понятно %)

Chupa

> -L/path/to/globus/lib и -l<globuslibname> (тут уже маленькая буква L)
> <globuslibname> - это составная часть имени после слова lib в названии файла библиотеки %)
их там не один десяток

squeeze

их там не один десяток

ну суть то ясна а дальше сам разберется %)

lordik72

не забыл после инсталляции проделать
% $GPT_LOCATION/sbin/gpt-postinstall
ну и вообще посмотри зачем вот вот нужно
% source $GLOBUS_LOCATION/etc/globus-user-env.csh
(% . $GLOBUS_LOCATION/etc/globus-user-env.csh
)
Оставить комментарий
Имя или ник:
Комментарий: