Wie Libraries in Eclipse einbinden ?

Gast #1618324
Lesenswert?

Hallo,
ich stehe gerade auf dem Schlauch.
Und zwar müsste ich in ein C++-Projekt unter Eclipse  für ODBC- und 
Socket-Routinen die entspechenden Bibliotheken einbinden.
Wie ich das sehe, wären das die Bibliotheken "libodbc32.a" und 
"libws2_32.a" aus dem Verzeichnis "C:/MinGW/lib/"

Die Sourcecode-Dateien werden schon komplett übersetzt, aber der Linker 
macht Probleme.

Das seltsame ist, wenn ich als LIB_DIR "../Library/Lib/" (wo ist das) 
und als LIB_NAME "odbc" als angebe, werden zumindest die ODBC-Routinen 
gefunden (von woher, ich habe für GCC gar keine Datei ODBC ?)

Hat jemand einen Tipp, wie ich die benötigten Library-Dateien inklusive 
Pfad im makefile korrekt angebe ?

D A N K E !


Ich verwende ein Makefile, das am Anfang so aussieht :

# Compiler-Einstellungen
CXX = g++
CXXFLAGS = ${FLAGWIN} ${FLAGOPTI}
CLNFLAGS =  ${FLAGLIB}

# Target-Einstellungen
TARGET_EXE = master2.exe

# benötigte Libs
#LIB_DIR = ../Library/Lib/
LIB_DIR = C:/MinGW/lib/
LIB_NAME = libodbc32.a libws2_32.a

# verschiedene Standardflags
TEMPFLAG =
FLAGOPTI = -O -O1 -O2 -march=pentium
FLAGWIN = -mwindows -mno-cygwin
FLAGLIB = -L${LIB_DIR} -l${LIB_NAME}

# die Standard-Targets
all : ${TARGET_EXE}

clean :
  rm -rf *.o

# die einzelnen Dateien
${TARGET_EXE} : ana_tele_ib.o ............
Gast #1618331
Lesenswert?

>LIB_NAME = libodbc32.a libws2_32.a

Heissen deine libs denn wirklich liblibodbc32.a und liblibws2_32.a?

Aus für Windowsnutzer unerfindlichen Gründen fügt der linker die 
Vorsilbe lib zum angegebenen Nmane selbsttätig hinzu. Wenn deine libs 
also libodbc32.a und libws2_32.a heissen, müsste die Zeile im makefile 
so lauten:

>LIB_NAME = odbc32.a ws2_32.a

Oliver
Gast #1618442
Lesenswert?

Vielen Dank,
jetzt funktioniert es !
Die benötigten Libraries heissen "libodbc32.a" und "libws2_32.a".
Da muss man erst mal drauf kommen, dass im makefile "odbc32" und 
"ws2_32" angegeben werden muss !

Und wo ist in Eclipse eigentlich der Pfad "LIB_DIR = ../Library/Lib/" 
definiert ? (in meinem Fall ist das vermutlich der konkrete Pfad 
"C:\MinGW\lib")


Nachfolgend der Vollständigkeit halber der aktualisierte relevante 
Auszug des makefiles :

# benötigte Libs
LIB_DIR = ../Library/Lib/
LIB_NAME1 = odbc32
LIB_NAME2 = ws2_32

# verschiedene Standardflags
TEMPFLAG =
FLAGOPTI = -O -O1 -O2 -march=pentium
FLAGWIN = -mwindows -mno-cygwin
FLAGLIB = -L${LIB_DIR} -l${LIB_NAME1} -l${LIB_NAME2}
#1618618
Lesenswert?

Wenn du einen Makefile verwendest dann sind die Library-Angaben in 
Eclipse selber nur noch für den Eclipseeditor ( Intellisense u.s.w.). 
Das kompilieren wird dann NUR durch den Makefile gesteuert, den Eclipse 
dann nicht verwaltet. Du kannst in Eclipse dann alle Includepfade und 
Libraries aus den Projekteinstellungen entfernen und das Programm wird 
trotzdem kompiliert und gelinkt. Die schöne Unterstützung des Editors 
funktioniert dann nur nicht mehr. Erst wenn du in Eclipse ein Projekt 
ohne Makefile anlegst, dann werden die Angaben in den 
Projekteinstellungen auch für das Build verwendet.
Gast #1618645
Lesenswert?

Ok,

aber bei mir im makefile wird das Lib-Verzeichnis so angegeben :

LIB_DIR = ../Library/Lib/

Der Klartext-Pfad steht nirgendwo im makefile, woher weiss Eclipse dann, 
dass sich die Lib-Dateien im Verzeichnis "C:\MinGW\lib" befinden ?
Gast #1618732
Lesenswert?

Gut,

damit verschiebt sich die Frage aber nur um eine Stufe :

Woher weiss es dann der Compiler/Linker unter MinGW ?
Gibt es da irgendwo auomatisch erzeugte ini-Dateien (ich habe da nämlich 
nichts manuell eingestellt).

Würde mich wirklich interessieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren