[Libssh] Comment inclure libssh en static ?
.:: Alfred Sawaya ::.
huji at huji.fr
Wed Jul 16 14:05:23 CEST 2008
And... Is it possible to not use static ? (actually, I would like that I
just have to install libssh and to compile my soft but I don't want to
have such a big soft (1.9Mo to make a connection and do a 'ls'...).
Thank you.
.:: Alfred Sawaya ::. a écrit :
> I've found problem and resolved it :) Thank you !!
>
> # gcc -o sample sample.c libssh.a /usr/lib/libcrypto.a
> /usr/lib/libgpg-error.a /usr/lib/libz.a /usr/lib/libdl.a -static
> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
> (.text+0x676): warning: Using 'dlopen' in statically linked applications
> requires at runtime the shared libraries from the glibc version used for
> linking
> libssh.a(options.o): In function `get_username_from_uid':
> /home/huji/test/libssh-0.2/libssh/options.c:295: warning: Using
> 'getpwent' in statically linked applications requires at runtime the
> shared libraries from the glibc version used for linking
> /home/huji/test/libssh-0.2/libssh/options.c:298: warning: Using
> 'endpwent' in statically linked applications requires at runtime the
> shared libraries from the glibc version used for linking
> libssh.a(connect.o): In function `getai':
> /home/huji/test/libssh-0.2/libssh/connect.c:68: warning: Using
> 'getaddrinfo' in statically linked applications requires at runtime the
> shared libraries from the glibc version used for linking
>
> Is it possible to avoid those warnings ?
>
> And is libraries I've linked part of libssh ? (I think libgpg-error,
> libz and libdl not, but...)
>
> 'Cause I must include all dependancies.
>
> I'm very grateful :)
>
> Norbert Kiesel a écrit :
>> Just debugged it a bit and it seems that host is initialized to an
>> invalid value (like -2 or so) because i is -1 in argv[i++]. No time to
>> find out why that happens right now. If you can't solve it yourself,
>> write to the mailing list again with details what you tried and where it
>> dies and I might look into it tomorrow.
>>
>> </nk>
>>
>> On Wed, 2008-07-16 at 00:22 +0200, .:: Alfred Sawaya ::. wrote:
>>> OK. It works, just have a warning :
>>>
>>> # gcc -o sample sample.c /usr/lib/libssh.a /usr/lib/libcrypto.a
>>> /usr/lib/libgcrypt.a /usr/lib/libgpg-error.a /usr/lib/libz.a
>>> /usr/lib/libdl.a -static
>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
>>> (.text+0x676): warning: Using 'dlopen' in statically linked applications
>>> requires at runtime the shared libraries from the glibc version used for
>>> linking
>>> /usr/lib/libssh.a(options.o): In function `get_username_from_uid':
>>> /home/huji/test/libssh-0.2/libssh/options.c:295: warning: Using
>>> 'getpwent' in statically linked applications requires at runtime the
>>> shared libraries from the glibc version used for linking
>>> /home/huji/test/libssh-0.2/libssh/options.c:298: warning: Using
>>> 'endpwent' in statically linked applications requires at runtime the
>>> shared libraries from the glibc version used for linking
>>> /usr/lib/libssh.a(connect.o): In function `getai':
>>> /home/huji/test/libssh-0.2/libssh/connect.c:68: warning: Using
>>> 'getaddrinfo' in statically linked applications requires at runtime the
>>> shared libraries from the glibc version used for linking
>>>
>>> But... I've a segmentation fault when I execute sample...
>>> When I put sample in libssh folder and I do "make sample.c" it works and
>>> sample works well too...
>>>
>>>
>>> Norbert Kiesel a écrit :
>>>> Try adding "-static" and "/usr/lib/libdl.a"
>>>>
>>>> </nk>
>>>>
>>>>
>>>>> /usr/lib/libgcrypt.a /usr/lib/libgpg-error.a /usr/lib/libz.a
>>>> On Tue, 2008-07-15 at 23:59 +0200, .:: Alfred Sawaya ::. wrote:
>>>>> Thank you :)
>>>>>
>>>>> I have :
>>>>>
>>>>> # gcc -o sample sample.c /usr/lib/libssh.a /usr/lib/libcrypto.a
>>>>> /usr/lib/libgcrypt.a /usr/lib/libgpg-error.a /usr/lib/libz.a
>>>>>
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
>>>>> (.text+0x2d6): undefined reference to `dlsym'
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
>>>>> (.text+0x3b7): undefined reference to `dlerror'
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
>>>>> (.text+0x446): undefined reference to `dlsym'
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
>>>>> (.text+0x527): undefined reference to `dlerror'
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_unload':
>>>>> (.text+0x595): undefined reference to `dlclose'
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
>>>>> (.text+0x676): undefined reference to `dlopen'
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
>>>>> (.text+0x6e0): undefined reference to `dlclose'
>>>>> /usr/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
>>>>> (.text+0x715): undefined reference to `dlerror'
>>>>> collect2: ld returned 1 exit status
>>>>>
>>>>>
>>>>> Think we touch the solution... ?
>>>>>
>>>>> Norbert Kiesel a écrit :
>>>>>> I could compile and link your test program using:
>>>>>> gcc -o sample sample.c /usr/lib/libssh.a \
>>>>>> /usr/lib/libcrypto.a /usr/lib/libgcrypt.a \
>>>>>> /usr/lib/libgpg-error.a /usr/lib/libz.a
>>>>>>
>>>>>> </nk>
>>>>>>
>>>>>>
>>>>>> On Tue, 2008-07-15 at 22:15 +0200, .:: Alfred Sawaya ::. wrote:
>>>>>>> Ok. So I try to compile a minimal code using libssh. I would like to use
>>>>>>> libssh as a static library. Aris said to use make libssh.a and to
>>>>>>> compile on this way : gccc -o test test.c libssh.a but it does errors :
>>>>>>>
>>>>>>> libssh.a(wrapper.o): In function `sha1':
>>>>>>>> /home/huji/test/libssh-0.2/libssh/wrapper.c:238: undefined reference to
>>>>>>>> `SHA1'
>>>>>>>> libssh.a(wrapper.o): In function `sha1_update':
>>>>>>>> /home/huji/test/libssh-0.2/libssh/wrapper.c:231: undefined reference to
>>>>>>>> `SHA1_Update'
>>>>>>>> libssh.a(init.o): In function `ssh_finalize':
>>>>>>>> /home/huji/test/libssh-0.2/libssh/init.c:31: undefined reference to
>>>>>>>> `EVP_cleanup'
>>>>>>> and many more...
>>>>>>>
>>>>>>> So Jean-Philipe (in this mailing list) said to link libraries used by
>>>>>>> libssh : gcc -o test test.c libssh.a -lcrypto -lz
>>>>>>>
>>>>>>> but it does not work. Anyway I don't know what to include and which
>>>>>>> files to put in the folder having sources. I thought it could be
>>>>>>> possible to simply include libssh.a and link with libssh.a but it's
>>>>>>> not... So i'm querying some solution :)
>>>>>>>
>>>>>>> Thanks to all !
>>>>>>>
>>>>>>> I join the file I want to compile.
>>>>>>>
>>>>>>> Norbert Kiesel a écrit :
>>>>>>>> You might get more help by posting your questions in English (or in
>>>>>>>> English as well).
>>>>>>>>
>>>>>>>> </nk>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, 2008-07-15 at 21:41 +0200, .:: Alfred Sawaya ::. wrote:
>>>>>>>>> Ca n'a pas l'air concluant :
>>>>>>>>>
>>>>>>>>> gcc -o sample libssh.a -lcrypto -lz
>>>>>>>>> /usr/lib/gcc/i486-linux-gnu/4.3.1/../../../../lib/crt1.o: In function
>>>>>>>>> `_start':
>>>>>>>>> (.text+0x18): undefined reference to `main'
>>>>>>>>> collect2: ld returned 1 exit status
>>>>>>>>>
>>>>>>>>> j'envoie le fichier que j'essaie de compiler en fichier joint, on sait
>>>>>>>>> jamais, surement une betise que j'ai fait... (c'est une version mini de
>>>>>>>>> sample.c)
>>>>>>>>>
>>>>>>>>> Aussi, le fichier est dans un dossier avec libssh.a et crypt.o mais bon
>>>>>>>>> ca ne marche pas non plus...
>>>>>>>>>
>>>>>>>>> Merci !
>
>
--
--
|
.:: Alfred Sawaya ::.
|
--
More information about the Libssh
mailing list