Lib linken

Schnelle objektorientierte, kompilierende Programmiersprache.
Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Lib linken

Beitrag von Empire » Mo Feb 22, 2010 6:00 pm

Kein thema hat mich bei C so viele nerfen gekosstet wie die sch*** libs.
ich brach die libwinmm.a und anscheinend findet er sich auch aber trotzdem
funkt es nicht

Hier der Quellecode:

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <libwinmm.a>

int main(int argc, char *argv[])
{ 
char Kommando[500];
char Dateiname[]={"J:\\Mukke\\Fettes Brot"};

wsprintf(Kommando,"open \"%s\" alias mp3player shareable",Dateiname);
mciSendString(Kommando,0,0,0);
mciSendString("set mp3player time format milliseconds",0,0,0);
mciSendString("play mp3player",0,0,0);
_sleep(5000);
mciSendString("pause mp3player",0,0,0);
_sleep(2000);
mciSendString("resume mp3player",0,0,0);

system("PAUSE");
mciSendString("stop mp3player",0,0,0);
mciSendString("close mp3player",0,0,0);

return 0;
}
und hier die Errors:

Code: Alles auswählen

3:437 C:\Dev-Cpp\include\libwinmm.a [Warning] null character(s) ignored 
3 C:\Dev-Cpp\include\libwinmm.a stray '\188' in program 
wo bei es den 2. in tausend verschiedenen varianten gibt.
hoffe es kann mir jemand helfen

mfg
Empire

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

Re: Lib linken

Beitrag von cloidnerux » Mo Feb 22, 2010 6:32 pm

http://www.network-theory.co.uk/docs/gc ... ro_17.html
Librarys muss man dazulinken, nicht per #include einbinden.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Re: Lib linken

Beitrag von Empire » Mo Feb 22, 2010 7:09 pm

Bei:

Code: Alles auswählen

#include <C:\Dev-Cpp\lib\libwinmm.a>
ist es das gleiche

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

Re: Lib linken

Beitrag von cloidnerux » Mo Feb 22, 2010 7:35 pm

Empire hat geschrieben:Bei:

Code: Alles auswählen
#include <C:\Dev-Cpp\lib\libwinmm.a>



ist es das gleiche
Sag mal liest du dir Links nie durch, wenn ich sie schon raussuche?
Eine Library, also eine vorkompilierte, binäre Datei, meistens mit den Endungen (.o, .a, .lib) muss dazu GELINKT werden, das heißt nicht über den Precompiler, nicht über den Compiler sondern über den LINKER, das ist was ganz anderes als "#include", bei VS kannst du natürlich #pragma nutzen, du nutzt aber nicht VS, also fällt das Weg. Du musst unter deinen Projekteinstellungen die Bibilothek hinzufügen, dazu schaue hier: http://www.uniqueness-template.com/devcpp/(Fast ganz runter Scrollen)
Verzeih mir wenn ich jetzt etwas rabiat bin, aber diese Ignoranz kann ich nicht so ganz Akteptieren
Redundanz macht wiederholen unnötig.
quod erat expectandum

Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Re: Lib linken

Beitrag von Empire » Mo Feb 22, 2010 7:49 pm

Ich lese es schon durch nur ist mein English nicht soderlich gut.

Auserdem arbeite ich nicht mit Projekten sondern immer nur mit einzelnen dateien.
War bisher ausreichen

mfg
Empire

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

Re: Lib linken

Beitrag von cloidnerux » Mo Feb 22, 2010 8:31 pm

Ich lese es schon durch nur ist mein English nicht soderlich gut.
Das wäre noch nicht sonderlich schlecht, aber deine Art deine Probleme zu schildern macht es mir nicht möglich dir zu helfen:
http://proggen.org/doku.php?id=faq:frag ... s[]=fragen
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Lib linken

Beitrag von Kerli » Mo Feb 22, 2010 8:39 pm

Empire hat geschrieben:Ich lese es schon durch nur ist mein English nicht soderlich gut.
Dann versuch es zu verbessern. Das hilft beim Programmieren enorm, da das meiste nur auf englisch vorhanden ist. Solltest du dabei irgendeinem Wort absolut keine Bedeutung zumessen können ist dict.leo.org eine gute Hilfe...

Ich kenn mich jetzt nicht mit Dev-C++ und der Projekt/Dateiverwaltung dabei aus und das meiste hat cloidnerux eh schon gesagt, aber irgendwie wird es wohl ein Feld geben wo du zusätzliche Linkeroptionen eintragen kannst. Dort schreibst du dann einfach '-l<Name der Bibliothek ohne lib und .a>' rein (zb -lwinmm) und es sollte funktionieren.

Gibt es denn eigentlich einen besonderen Grund eine IDE zu verwenden deren Entwicklung vor fünf Jahren eingestellt wurde?
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

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

Re: Lib linken

Beitrag von Xin » Mo Feb 22, 2010 9:08 pm

Empire hat geschrieben:Kein thema hat mich bei C so viele nerfen gekosstet wie die sch*** libs.
ich brach die libwinmm.a und anscheinend findet er sich auch aber trotzdem
funkt es nicht

Hier der Quellecode:

Code: Alles auswählen

#include <libwinmm.a>
Ähh.. nein ;-)

Also: Erstmal wirfst Du Dev-Cpp bitte weg und lädst Dir CodeBlocks. Dev-Cpp ist Buggy.

Mit Include bindest Du bitte ausschließlich Text-Dateien ein.
libwinmm.a klingt nach einer statischen Lib für Unix. Windows-Libraries enden mit der Extention .lib. Falls Du für Unix kompilierst, kann das passen. Wie auch immer, Du musst Du die .a (bzw. die .lib) Datei dem Linker melden. Schau also unter den Projekteinstellugnen nach Eingaben für den Linker und trage dort die Datei (mit Pfad) ein.
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.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Lib linken

Beitrag von Kerli » Mo Feb 22, 2010 9:55 pm

Xin hat geschrieben:libwinmm.a klingt nach einer statischen Lib für Unix. Windows-Libraries enden mit der Extention .lib.
Soweit ich mich erinner kann enden die MinGW Libraries auch auf .a ...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

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

Re: Lib linken

Beitrag von cloidnerux » Mo Feb 22, 2010 9:59 pm

Soweit ich mich erinner kann enden die MinGW Libraries auch auf .a ...
Soweit ich weis tuhen sie das, auch habe ich Windows-libs mit der Endung *.o gesehen. Egt hat nur Visual Studio defaultmäßig seine libs als *.lib gespeichert, gcc hält sich da wohl an Unix-Standard.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten