MinGW Anfängerfrage

Schnelle objektorientierte, kompilierende Programmiersprache.
koax
Beiträge: 13
Registriert: Mi Okt 23, 2013 10:02 am

MinGW Anfängerfrage

Beitrag von koax » Mi Okt 30, 2013 2:36 am

Hallo!

Ich versuche mich gerade im Umgang mit MinGW und habe ein Problem beim Compilieren eines Beispielquelltextes.
Undzwar habe ich mir libssh runtergeladen und wollte ein Example durchlaufen lassen, leider wird mir vor jede Funktion die Libssh mitbringt ein __imp_ Präfix angehangen und der Compiler sagt dann das er die Funktion nicht kennt.

Auf einer Seite habe ich gelesen das gcc eine Library nur als diese erkennt, wenn auch lib... davorsteht, auch das ändert leider nichts am Problem.

Ich hoffe jemand hat einen Tip.
C:\MinGW\SSH_test>gcc -LC:\MinGw\libssh-0.5.0\lib -LC:\MinGW\libssh-0.5.0\bin -IC:\MinGW\libssh-0.5.0\include example_ssh.c -o test.exe C:\MinGW\libssh-0.5.0\lib\SSH.lib
cygwin warning:
MS-DOS style path detected: C:\MinGW\libssh-0.5.0\lib\SSH.lib
Preferred POSIX equivalent is: /cygdrive/c/MinGW/libssh-0.5.0/lib/SSH.lib
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.h ... -pathnames
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x21): undefined reference to `__imp_ssh_is_server_known'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x21): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_is_server_known'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x38): undefined reference to `__imp_ssh_get_pubkey_hash'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x38): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_get_pubkey_hash'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0xc0): undefined reference to `__imp_ssh_print_hexa'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0xc0): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_print_hexa'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x1b1): undefined reference to `__imp_ssh_get_hexa'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x1b1): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_get_hexa'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x27b): undefined reference to `__imp_ssh_write_knownhost'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x27b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_write_knownhost'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x2cd): undefined reference to `__imp_ssh_get_error'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x2cd): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_get_error'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x333): undefined reference to `__imp_ssh_new'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x333): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_new'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x364): undefined reference to `__imp_ssh_options_set'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x364): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_options_set'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x374): undefined reference to `__imp_ssh_connect'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x374): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_connect'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x38d): undefined reference to `__imp_ssh_get_error'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x38d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_ssh_get_error'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x3bb): undefined reference to `__imp_ssh_free'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x3bb): additional relocation overflows omitted from the output
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x3e5): undefined reference to `__imp_ssh_disconnect'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x3f5): undefined reference to `__imp_ssh_free'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x42e): undefined reference to `__imp_ssh_userauth_password'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x447): undefined reference to `__imp_ssh_get_error'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x475): undefined reference to `__imp_ssh_disconnect'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x485): undefined reference to `__imp_ssh_free'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x4ab): undefined reference to `__imp_ssh_disconnect'
/cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o:example_ssh.c:(.text+0x4bb): undefined reference to `__imp_ssh_free'
/usr/lib/gcc/x86_64-pc-cygwin/4.8.1/../../../../x86_64-pc-cygwin/bin/ld: /cygdrive/c/Users/brf24139/AppData/Local/Temp/cc5n15Y3.o: bad reloc address 0x210 in section `.rdata'
/usr/lib/gcc/x86_64-pc-cygwin/4.8.1/../../../../x86_64-pc-cygwin/bin/ld: final link failed: Invalid operation
collect2: error: ld returned 1 exit status

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: MinGW Anfängerfrage

Beitrag von cloidnerux » Mi Okt 30, 2013 8:01 am

Hallo und Willkommen im Forum :D

Code: Alles auswählen

cygwin warning:
Ich habe so das Gefühl, dass das kein MinGW ist, sondern ein gcc unter cygwin?
Ich denke es fehlen dir zudem die folgenden Librarys:

Code: Alles auswählen

C:\MinGW\libssh-0.5.0\lib\SSH.lib 
C:\MinGW\libssh-0.5.0\bin\ssh.dll 
Mit freundlichen Grüßen

cloidnerux
Redundanz macht wiederholen unnötig.
quod erat expectandum

koax
Beiträge: 13
Registriert: Mi Okt 23, 2013 10:02 am

Re: MinGW Anfängerfrage

Beitrag von koax » Do Okt 31, 2013 12:19 am

Klasse !

Ich habe cygwin aus den Path environments genommen und nur mingw drin gelassen und nun kamen keine imp-Meldungen, danke!
Da sitze ich seit Wochen an dem Problem und dann war es cygwin... :evil:

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: MinGW Anfängerfrage

Beitrag von Xin » Do Okt 31, 2013 10:25 am

koax hat geschrieben:Klasse !

Ich habe cygwin aus den Path environments genommen und nur mingw drin gelassen und nun kamen keine imp-Meldungen, danke!
Da sitze ich seit Wochen an dem Problem und dann war es cygwin... :evil:
Wenn Du dir unsicher bist, welcher gcc verwendet wird, kannst Du mit 'which gcc' unter Linux und MacOS und mit 'where gcc' den Pfad unter Windows.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

koax
Beiträge: 13
Registriert: Mi Okt 23, 2013 10:02 am

Re: MinGW Anfängerfrage

Beitrag von koax » So Nov 03, 2013 10:01 pm

Hallo Xin,

Die testanwendung konnte ich dank dir nun erfolgreich erstellen, beim Starten dieser habe ich nun ein weiteres Problem, LIBEAY32.dll kann nicht gefunden werden. Nach kurzer Recherche sollte ich keine runterladen sondern sollte diese benutzen die mit dabei war(bei openssl-Nutzern), leider war keine bei libssh mit dabei.

was nun?

gruß

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: MinGW Anfängerfrage

Beitrag von Xin » So Nov 03, 2013 10:14 pm

koax hat geschrieben:Die testanwendung konnte ich dank dir nun erfolgreich erstellen, beim Starten dieser habe ich nun ein weiteres Problem, LIBEAY32.dll kann nicht gefunden werden. Nach kurzer Recherche sollte ich keine runterlasen sondern sollte diese benutzen die mit dabei war(bei openssl-Nutzern), leider war keine bei libssh mit dabei.
Such mal Deinen Rechner nach der DLL durch.

Ich gehe mal davon aus, dass Du die Entwicklerversion heruntergeladen hast. Eventuell musst Du die Library selbst erstellen.
Hier kann ich Dir aus eigener Erfahrung aber nicht weiterhelfen, weil ich die libssh noch nicht verwendet habe. Ich kenne das nur von der libffi, die ich unter Windows ebenfalls erst selbst erstellen musste.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

koax
Beiträge: 13
Registriert: Mi Okt 23, 2013 10:02 am

Re: MinGW Anfängerfrage

Beitrag von koax » So Nov 03, 2013 10:26 pm

Die Lib habe ich 7 mal verteilt bei verschiedene Programme auf dem PC, ich gehe davon aus ich kann diese nicht einfach kopieren und benutzen?

ich denke nicht das ich eine Entwicklerversion habe gcc 4.8.1
e:\Programme\MinGW>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=e:/programme/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=mingw32 --without-pic --enable-shared --enable-static --with-gnu-ld --enable-lto --enable-libssp --disable-multilib --enable-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific
-runtime-libs --with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= --with-system-zlib --with-gnu-as --enable-decimal
-float=yes --enable-libgomp --enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/mingw
Thread model: win32
gcc version 4.8.1 (GCC)
woher soll ich wissen was in die Lib gehört?

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: MinGW Anfängerfrage

Beitrag von cloidnerux » So Nov 03, 2013 10:38 pm

Die Lib habe ich 7 mal verteilt bei verschiedene Programme auf dem PC, ich gehe davon aus ich kann diese nicht einfach kopieren und benutzen?
Zu deiner Ausführbaren Datei kopieren und schauen was passiert ;)
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: MinGW Anfängerfrage

Beitrag von Xin » So Nov 03, 2013 10:54 pm

koax hat geschrieben:Die Lib habe ich 7 mal verteilt bei verschiedene Programme auf dem PC, ich gehe davon aus ich kann diese nicht einfach kopieren und benutzen?
Das kannst Du ausprobieren, wie cloidnerux beschrieben hat.
koax hat geschrieben:ich denke nicht das ich eine Entwicklerversion habe
...
woher soll ich wissen was in die Lib gehört?
Ich weiß ja nicht, wo Du die libssh her hast. Die Headerfiles wirst Du ja auch irgendwoher haben.
Ich gehe also davon aus, dass da auch Quellcodes auch irgendwo hast und es dort ein Makefile gibt.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

koax
Beiträge: 13
Registriert: Mi Okt 23, 2013 10:02 am

Re: MinGW Anfängerfrage

Beitrag von koax » So Nov 03, 2013 11:11 pm

jede der dlls machen einen Fehler, einige eine Speicheradresse, andere verlangen MSCVR100D.dll

libssh ist von libssh.org und ist die Version 0.5.0 dort sind die headerfiles enthalten, eine dll, eine Lib und eine pfgconfig namens libssh.pc mit der ich nicht viel anfangen kann.

Antworten