2011-09-29 4 views
1

Je souhaite utiliser OpenCV en tant que bibliothèque statique. Après avoir compilé la bibliothèque en tant que bibliothèque statique, je suis en train de tester avec quelques exemples pour voir toutes les dépendances.Erreur de liaison statique OpenCV

Les dépendances ajoutées à la compilation sont -static pkg-config --libs OpenCV -lpthread -ljpeg -ltiff -lz -ljasper -lpng12

Mais obtenir ce qui suit Message d'erreur:

g++ -c -g -Wall -O2 `pkg-config --cflags opencv` formas.cpp 
g++ -g -Wall -O2 `pkg-config --cflags opencv` formas.o -o paint -static `pkg-config --libs opencv` -lpthread -ljpeg -ltiff -lz -ljasper -lpng12 
/usr/local/lib/libopencv_core.a(system.o): In function `cv::tempfile(char const*)': 
system.cpp:(.text._ZN2cv8tempfileEPKc+0x3a): warning: the use of `tmpnam' is dangerous, better use `mkstemp' 
/usr/local/lib/libopencv_core.a(system.o): In function `cv::getTickCount()': 
system.cpp:(.text._ZN2cv12getTickCountEv+0x2a): undefined reference to `clock_gettime' 
/usr/local/lib/libopencv_highgui.a(grfmt_png.o): In function `cv::PngDecoder::readHeader()': 
grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0xde): undefined reference to `png_set_longjmp_fn' 
/usr/local/lib/libopencv_highgui.a(grfmt_png.o): In function `cv::PngEncoder::write(cv::Mat const&, std::vector<int, std::allocator<int> > const&)': 
grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x134): undefined reference to `png_set_longjmp_fn' 
/usr/local/lib/libopencv_highgui.a(grfmt_png.o): In function `cv::PngDecoder::readData(cv::Mat&)': 
grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x141): undefined reference to `png_set_longjmp_fn' 
collect2: ld returned 1 exit status 
make: *** [all] Error 1 

J'ai fait quelque chose de mal ou il y a une erreur dans Bibliothèque OpenCV. OpenCV version: 2.3.1 (dernière version) formas -> exemple qui crée une image et dessine quelques figures et sauvegarde dans un fichier. Si simple.

Merci d'avance.

+0

Ostia, estoy buscando exactamente pour mismo y soy maño también: P – Wiliam

Répondre

4

Il semble que vous avez compilé OpenCV avec libpng 1.4 ou plus récent mais en essayant de créer un lien avec libpng 1.2

Quelle commande cmake avez-vous utilisé pour configurer OpenCV?

Mise à jour:

Vous devez ajouter -lrt à la liste des bibliothèques que vous créez un lien pour la fonction clock_gettime.