Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    2

    C++ Problema compilazione con librerie esterne

    Ciao a tutti,

    Ho scritto un programma che usa le librerie ANN, che ho scaricato e compilato.

    Nel mio programma ho opportunamente aggiunto la riga

    #include "ann/include/ANN/ANN.h"

    La compilazioni (attraverso make) non restituisce errori di sintassi, ma termina inaspettatamente ritornando quando segue:


    codice:
    cristian@cristian-note:~/Desktop/Prova/FaceEmotion$ make
    g++ -march=i686 -mmmx -msse -msse2 -msse3 -O3 -pipe -Wall -fomit-frame-pointer  -D_ENABLE_TILT -D_ENABLE_FORCE -I/usr/include/opencv/ -c core/main/faceEmotion.cpp -o core/main/faceEmotion.o
    core/main/faceEmotion.cpp: In function ‘int main()’:
    core/main/faceEmotion.cpp:31: warning: deprecated conversion from string constant to ‘char*’
    core/main/faceEmotion.cpp:18: warning: unused variable ‘cc’
    for m in  faceEmotion ; do      \
                    g++ -march=i686 -mmmx -msse -msse2 -msse3 -O3 -pipe -Wall -fomit-frame-pointer  `pkg-config --cflags opencv` -Iann/include -Lann/lib -lANN -lm -lpthread  -L/usr/lib `pkg-config --libs opencv` -o $m ./core/src/ColorClassifier.o ./core/src/ColorDataset.o   ./core/main/$m.o #;  \
            done
    ./core/src/ColorClassifier.o: In function `KnnColorClassifier::fast_build(ColorDataset*, int, unsigned int, bool)':
    ColorClassifier.cpp:(.text+0x17ec): undefined reference to `annAllocPt(int, double)'
    ColorClassifier.cpp:(.text+0x180d): undefined reference to `annAllocPts(int, int)'
    ColorClassifier.cpp:(.text+0x19e3): undefined reference to `ANNkd_tree::ANNkd_tree(double**, int, int, int, ANNsplitRule)'
    ColorClassifier.cpp:(.text+0x24a4): undefined reference to `annDeallocPt(double*&)'
    ColorClassifier.cpp:(.text+0x24b6): undefined reference to `annDeallocPts(double**&)'
    collect2: ld returned 1 exit status
    make: *** [main] Error 1
    cristian@cristian-note:~/Desktop/Prova/FaceEmotion$
    posto anceh il mio makefile, dato che il problema sia dato dal linker che non sa dove sono le librerie...

    codice:
    ifndef srcdir
    srcdir = ./core/src
    endif
    ifndef maindir
    maindir = ./core/main
    endif
    
    #g++ ann_sample.cpp -o ann_sample -Iann/include -Lann/lib -lANN
    
    CXX = g++
    RM = rm -f
    OBJ = $(patsubst $(srcdir)/%.cpp,$(srcdir)/%.o,$(wildcard $(srcdir)/*.cpp))  
    
    MAINOBJ = $(patsubst $(maindir)/%.cpp,$(maindir)/%.o,$(wildcard $(maindir)/*.cpp))  
    EXE = $(patsubst $(maindir)/%.cpp, % ,$(wildcard $(maindir)/*.cpp))
    
    
    #CDEBUG = -fpic -ggdb
    
    CFLAGS=-march=i686 -mmmx -msse -msse2 -msse3 -O3 -pipe -Wall -fomit-frame-pointer
    CXXFLAGS=${CFLAGS} ${CDEBUG}
    
    OPENCVCONF = `pkg-config --libs opencv`
    OPENCVFLAGS = `pkg-config --cflags opencv`
    
    all: main 
    
    main : $(OBJ) $(MAINOBJ)
    	for m in $(EXE); do	\
    		$(CXX) $(CXXFLAGS) $(OPENCVFLAGS) -Iann/include -Lann/lib -lANN -lm -lpthread  -L/usr/lib $(OPENCVCONF) -o $$m $(OBJ) $(maindir)/$$m.o #;	\
    	done
    	
    
    %.o : %.cpp
    	$(CXX) $(CXXFLAGS) -D_ENABLE_TILT -D_ENABLE_FORCE -I/usr/include/opencv/ -c $*.cpp -o $*.o
    
    clean: 
    	$(RM) $(srcdir)/*.o *~
    	$(RM) $(maindir)/*.o *~

    non ho idea di come sistemare il tutto... a questo link potete scaricare se vi serve i sorgenti in questione

    http://www.4shared.com/file/51220711.../Provatar.html

  2. #2
    Non hai aggiunto alle istanze del compilatore la libreria, così non trova le funzioni che usi, devi aggiungere il file *.lib della tua libreria...
    printf("Programmazione in C!");
    cout<<"Programmazione in C++!";

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    2
    Non riesco a capiro cosa intendi.. dove devo aggiungerlo.. e sopratutto la mia libreria non ha file .lib...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.