Problem mit header-Dateien bei eclipse



  • hi zusammen,

    ich benutze derzeit neuerdingsEclipse CDT 3.3.1.1 unter Kubuntu 8.04 und würde gerne etwas mit der OpenCv-bib programmieren. Leider findet Eclipse nicht mal die Header-dateien. Es ist ein makefile-C-Project. Hab schon versucht in den BuilderSettings die Ordner einzutragen, was jedoch erfolglos blieb. Auch ein Eintrag der include- und lib- Ordner in die makefile.inc hat nichts geholfen. " cv.h no such file or directory" ist jedesmal das Ergebnis 😞

    - opencv wurde nach /opt/opencv installiert.
    - auch entsprechende ordner in die ld.so.conf eingetragen.
    - beispielprogramme funktionieren

    Woran kann es noch liegen?



  • Normalerweise sollten headerdazeien in /usr/include gespeichert werden. Falls sie direkt dort drin sind, findet sie der Compiler automatisch, ansonsten müsstest Du den genauen Pfad in den Projekteinstellungen eintragen.

    Enthält das OpenCV-Paket, das Du installiert hast, überhaupt die Headerdateien oder gibt es da ein seperates Developer-Paket?



  • elsucht schrieb:

    - opencv wurde nach /opt/opencv installiert.

    wenn du das Paket von Hand in /opt/opencv installiert hast, dann liegen die Header Files vermutlich unter /opt/opencv/include. Du müsstest dann -I/opt/opencv/include zu den CFLAGS hinzufügen.



  • also das Opencv paket enthält alle Header Dateien. Alle Dateien wurden nach /opt/opencv installiert. Habe auch schon versucht den Ordner /opt/opencv/include/oepncv, in dem sich die header-Dateien befinden, in die Project-Properties einzutragen, welches aber nicht erfolgreich war. Auch ein Eintrag in die make.inc hat leider nichts gebracht. Bin echt ratlos.



  • Zeig doch mal den Aufruf von g++, der durch das Makefile erzeugt wird.



  • make -C ppc_6xx -f ../Makefile.inc all || exit $?
    make[1]: Entering directory `/home/mvbc/workspace/mvimpact_acquire-ppc_6xx-1.10.13.91/apps/myproj/ppc_6xx'
    /opt/eldk41/usr/bin/ppc_6xx-g++   -D__ppc_6xx__  -O2 -Wall -W -fPIC -D_REENTRANT -D_GNU_SOURCE -D_MAJOR_VERSION=1 -D_MINOR_VERSION=10 -D_BUILD_VERSION=13 -D_BUILD2_VERSION=91        -I../../..    -c -o myproj.o ../myproj.cpp
    ../myproj.cpp:12:31: error: mvIMPACT_transmit.h: No such file or directory
    ../myproj.cpp:14:22: error: _highgui.h: No such file or directory
    ../myproj.cpp:16:47: error: cv.h: No such file or directory
    ../myproj.cpp:18:19: error: cvaux.h: No such file or directory
    ../myproj.cpp:21:53: error: highgui.h: No such file or directory
    

    das steht in der make.inc:

    #! /bin/make
    ##############################################
    # Makefile for the 'myproj' sample,
    # Creation date: Thu Aug 21 15:28:20 CEST 2008
    ##############################################
    #-------------------------------------------
    ROOT_PATH=../..
    WORK_PATH=../../../..
    
    mvIMPACT_ACQUIRE=$(WORK_PATH)/mvimpact-acquire
    mvIMPACT=$(WORK_PATH)/mvimpact
    
    #-------------------------------------------
    MODULE_NAME=myproj
    
    #-------------------------------------------
    OOBJ =						\
    
    #-------------------------------------------
    vpath %.cpp ..
    
    #-------------------------------------------
    USR_INCLS =					\
    #	-I$(mvIMPACT)/include/mvIMPACT_CPP	\
    #	-I$(mvIMPACT)/include/			\
    	-I/opt/opencv/include/opencv/		\
    #	-I/home/workspace/mvimpact/include/mvIMPACT_CPP
    
    #-------------------------------------------
    USR_LIBS =					\
    	-L/opt/opencv/lib/
    #	-L/home/workspace/mvimpact/lib/ppc_6xx/
    
    #-------------------------------------------
    CPPFLAGS_1 = 				\
    
    #-------------------------------------------
    include $(ROOT_PATH)/Makefile.samp.inc
    
    #-------------------------------------------
    


  • Wenn man den Aufruf von g++ ansieht, stellt man fast, dass der Wert von USR_INCLS aus dem Makefile dort nicht verwendet wird, es ist also klar, dass die Header nicht gefunden werden. Das ist auf jeden Fall die Stelle, wo Du ansetzen solltest.



  • ich werde mir die makefile struktur nochmal genau angucken. Nimmt das makefile immer automatisch die makefile.inc im selben Verzeichnis oder muss es extra angegeben werden?
    Zudem verwundert mich noch folgendes: Wenn ich in Eclipse das Projekt als Makefile-projekt importiere und dort in den Project-Prop. die include Ordner eingebe, sollte er das doch auf jeden Fall machen, oder? Das tut es aber nicht...



  • Da bin ich überfragt, ich hab in meinen Projekten das Makefile immer von CDT verwalten lassen.


Anmelden zum Antworten