[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: