Re: /usr/bin/ld: cannot find -lmysqlpp
El día 1 de octubre de 2008 17:48, Stéphane Glondu <steph@glondu.net> escribió:
> Javier wrote:
>> Esto me genera un ejecutable "main" que realiza lo que yo quiero, pero
>> depende de las librerías instaladas. Para evitarlo, uso -static, con
>> lo que me queda:
>> g++ -lvmime -lmysqlpp -static main.cpp -o main
>> La salida que me da es:
>> /usr/bin/ld: cannot find -lmysqlpp
>> collect2: ld returned 1 exit status
>>
>> ¿Alguna idea de por qué ese fallo?
>
> Sí: mysqlpp no existe de forma estática (libmysqlpp.a). Generalmente,
> librerías estáticas están instaladas con *-dev paquetes. Pero no es el
> caso de libmysql++-dev... ¿Quizás quieres enviar un (wishlist) bugreport?
>
> Puedes probar eso:
> 1. apt-get source mysql++
> 2. cd mysql++-*
> 3. debuild -us -uc -b # instale dependencias y prueba más)
> 4. note los .o utilizados para crear libmysql.so.3.0.0 (o lo que sea)
> 5. ar rc libmysqlpp.a <list-of-o-files>
> 6. utiliza este libmysqlpp.a para generar tu ejecutable:
> g++ -lvmime -static <path/to/libmysqlpp.a> main.cpp -o main
>
> Quizás necesitarás también libmysqlpp_excommon.a (generado durante la
> compilación de mysql++), y -lmysqlclient -lz (éstos existen de forma
> estática).
>
>
> Suerte,
>
> --
> Stéphane
>
>
Hola,
perfecto, ya tengo el libmysqlpp.a (la estática). Ahora sólo me falla
a la hora de compilar y unirlo con las demás librerías que uso. Si
hago un:
g++ -static /root/mysql/mysql++-3.0.0/libmysqlpp.a fax.cpp -o fax
todo funciona correctamente, sin embargo si necesito unirlo con otras
librerías... la cosa ya cambia. Los errores comienzan a ser grande.
g++ -static /usr/lib/libpthread.a /usr/lib/libvmime.a
/root/mysql/mysql++-3.0.0/libmysqlpp.a fax.cpp -o fax
g++ -lpthread -lvmime -static /root/mysql/mysql++-3.0.0/libmysqlpp.a
fax.cpp -o fax
También probé a ponerle -lmysqlclient -lz, pero no cambian los errores :S
Los errores que suelta:
/tmp/ccjs6XSo.o: In function `fax::notify(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::basic_string<char, std::char_traits<char>, std::allocator<char>
>)':
fax.cpp:(.text+0x16f9): undefined reference to
`vmime::messageBuilder::messageBuilder()'
fax.cpp:(.text+0x173f): undefined reference to
`vmime::mailbox::mailbox(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)'
fax.cpp:(.text+0x1757): undefined reference to
`vmime::messageBuilder::setExpeditor(vmime::mailbox const&)'
fax.cpp:(.text+0x1813): undefined reference to
`vmime::addressList::addressList()'
...
......
.........
¿Dónde está ahora el fallo?
--
Power by Debian.
Un saludo,
Javier.
Reply to: