im tratando de construir una biblioteca compartida en una plataforma Windows Cygwin usando g ++, y luego vincularlo con otro archivo CPP: i utilizar los siguientes comandos:edificio y la vinculación de una biblioteca compartida
// generate object file
g++ -g -c -Wall -fPIC beat11.cpp -o beat11.o
// to generate library from the object file
g++ -shared -Wl,-soname,libbeat.so.1 -o libbeat.so.1.0.1 beat11.o -lc
// to link it with another cpp file; -I option to refer to the library header file
g++ -L. -lbeat -I . -o checkbeat checkbeat.cpp
mientras se enlaza, el siguiente error surge:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld:
cannot find -llibbeat.so.1.0.1
collect2: ld returned 1 exit status
la biblioteca se crea muy bien, pero sólo puedo encontrar libbeat.so.1.0.1, no libbeat.so o libbeat.so.1 (o ¿no se supone que estar allí?)
una de las otras preguntas sugiere crear un enlace simbólico a libbeat.so.1.0.1, pero que aún no ha trabajo también
Tuve el mismo problema y tu comentario con -l: nombre.búmano funcionó. Sin embargo, realmente no entiendo por qué no funciona con -L -lname como dijiste que el enlazador debería buscar lib .so también. también entendí que debería funcionar, pero al menos con cygwin no parece ser el caso. No lo he intentado con otros compiladores. –
Devolus
La respuesta aquí me ayudó: http://stackoverflow.com/questions/16154130/cygwin-g-linker-doesnt-find-shared-library – solstice333