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 funktionierenWoran 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.