Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Link-Probleme mit MinGW bei DevC++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.02.2015, 21:59 Uhr
~TiHm
Gast


Hallo zusammen,

bin stark eingerostet was das Programmieren angeht und mit APIs hatte noch nie was zu tun.

Ich möchte über eine API (Libad4) auf ein Messgerät zugreifen. Dafür habe ich einen Treiber und die Schnittstelle installiert.


C++:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include "libad.h"
int32_t adh;

int main()
{
adh = ad_open ("lanbase:mad:238");
if (adh == -1)
{
printf("Error\n");
exit(1);
}
ad_close(adh);
}


In der Header-File libad.h sind Verweise zu weiteren header-files der Schnittstelle. Neben dieser Header-File gibt es auch noch eine .dll und .lib-File.
Libraries und Includes folgendermaßen eingefügt:

Einmal bei..

Werkzeuge -> Compiler -> Verzeichnisse -> (hier Pfadangabe zu Bibliotheksordner und Includes)

und bei Projekt -> Projektoptionen -> Parameter -> im Feld Linker "lib/libad4.a" und im Reiter Verzeichnisse nochmal den Pfad zum Verzeichnis für Biblio.. und Includes
Zusätzliche Kommandozeilen Optionen sind bei C- / C++-Compiler leer.

Trotzdem bekomme ich immer den Fehler:

CDocuments\Untitled4.o Untitled4.cpp.text+0x16): undefined reference to `ad_open'
CDocuments\collect2.exe [Error] ld returned 1 exit Status

Also ein Verlinkungs-Problem.

Wäre dankbar für irgendwelche Hinweise

Liebe Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.02.2015, 22:20 Uhr
~TiHm
Gast


Nach Umstellen auf 32Bit Compiler neuer Fehler:

Neue Fehler: (Auszug aus Linker)

Processing makefile...
--------
- Makefile Processor: CProgram Files (x86)\Dev-Cpp\MinGW64\bin\mingw32-make.exe
- Command: mingw32-make.exe -f "CUsers\Timm\Desktop\LAN-AD16f-Programmierung\Test\Makefile.win" all

g++.exe -c Unbenannt2.cpp -o Unbenannt2.o -I"C:/Users/Timm/Desktop/LAN-AD16f-Programmierung/Test/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++" -I"C:/Users/Timm/Desktop/LAN-AD16f-Programmierung/Test/include" -m32

g++.exe Unbenannt2.o -o Projekt1.exe -L"C:/Users/Timm/Desktop/LAN-AD16f-Programmierung/Test/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib32" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32" -static-libgcc -L"C:/Users/Timm/Desktop/LAN-AD16f-Programmierung/Test/lib" lib/libad4.a lib/libad4.def lib/libad4.dll lib/libad4.lib -m32

Cannot export _ad_alloc_file: symbol not defined
Cannot export _ad_analog_in: symbol not defined
Cannot export _ad_analog_out: symbol not defined
Cannot export _ad_async_alloc_file: symbol not defined
Cannot export _ad_async_close_up: symbol not defined
Cannot export _ad_async_free_file: symbol not defined
Cannot export _ad_async_get_run: symbol not defined
Cannot export _ad_stream_poll_scan_state: symbol not defined
Cannot export _ad_stream_select: symbol not defined
Cannot export _ad_stream_set_trigger_pos: symbol not defined
Cannot export _ad_stream_start: symbol not defined
collect2.exe: error: ld returned 1 exit status

CUsers\Timm\Desktop\LAN-AD16f-Programmierung\Test\Makefile.win:25: recipe for target 'Projekt1.exe' failed
mingw32-make.exe: *** [Projekt1.exe] Error 1
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.02.2015, 22:21 Uhr
Hans
Library Walker
(Operator)


Hi,

so wie das aussieht, hast Du irgendwelche Pfade falsch eingestellt, bzw. irgendwo vergessen, dem Compiler und/oder Linker mitzuteilen, dass er die weiteren Bibliotheken benutzen soll. Gibt es denn in der API-Beschreibung keine Anleitung dazu, wie man die in verschiedene Compilerumgebungen einbindet?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: