Linkar librerias en linux

Necro
12 de Mayo del 2006
Estoy haciendo un programa en linux, para ello utilizo las librerias de intel Opencv.

El programa me funciona perfectamente. El problema viene cuando intento ejecutar el programa en una máquina que no tiene instalado el opencv. Me dice que faltan las librerias, lógico.

¿Hay alguna manera para hacer que el ejecutable contenga ya todas las librerias necesarias de forma que el ordenador donde se ejecute mi programa no tenga que tener instalado el opencv?

hiei
12 de Mayo del 2006
Deves linkarlas con:
gcc -o... -l/directorio/de/la/libreria/libopencv.a
Porque si pones
gcc -o... -lopencv
Te hace un linkado dinamico a las .so y no a las .a (es el linkado por defecto si las .so existen)

Creo que ya lo sabras pero lo dire igual... si enlazas todas las librerias estaticamente te quedara un ejecutable inmenso... (gordo) pero ese no es todo el problema, sino, que las librerias deben estar compiladas para i386... esto es un punto a tener en cuenta cuando usas distros como SuSE/RedHAT/Mandrake(aka Mandriva) que traen todo compilado para i686 o algo mas...
Bueno, cubiertas las recomendaciones necesarias, te deseo suerte con esto, no sin antes recomendarte:
"man ld"
Que es la manpage del enlazador usado por gcc al que le puedes pasar parametros en la linea de comandos del compilador (gcc)

Saludos.