Problem mit Eclipse
-
Hallo Leute. Ich wollte von Dev-C++ auf Eclipse umsteigen, weil mich das Linken von Bibliotheken bei der Windows-Programmierung genervt hat, aber komme mit Ecplise nicht klar. Wie compiliert man damit??
Da steht "Run", aber wenn ich drauf drücke, sagt er, dass er die Binary nicht findet. Warum compiliert er sie nicht? Da fand ich Dev-C++ einsteigerfreundlicher. Google und Einarbeitung haben nichts gebracht.

-
dunno
-
1. Falsches Forum, das gehört ins Compiler/IDE Forum rein.
2. Von DevCpp auf Eclipse? Wie kommt man auf so eine Idee? Ich meine, dass du von DevCpp weg willst, das ist klar, aber wieso auf Eclipse umsteigen? Gibt doch deutlich bessere IDEs für C++, welche auch gratis sind:
- Microsoft Visual Studio Express Edition
- Code::Blocks
- CodeliteDie muss man dann auch nicht mühsam über Plugins umkonfigurieren.
Grüssli
-
Dravere schrieb:
1. Falsches Forum, das gehört ins Compiler/IDE Forum rein.
2. Von DevCpp auf Eclipse? Wie kommt man auf so eine Idee? Ich meine, dass du von DevCpp weg willst, das ist klar, aber wieso auf Eclipse umsteigen? Gibt doch deutlich bessere IDEs für C++, welche auch gratis sind:
- Microsoft Visual Studio Express Edition
- Code::Blocks
- CodeliteDie muss man dann auch nicht mühsam über Plugins umkonfigurieren.
Grüssli
Hast recht. Hab mir Code::Blocks besorgt. Wie verlinke ich hier die nötigen .lib's?
#include <windows.h> #include <winsock2.h> #include <stdio.h> //Prototypen int startWinsock(void); int main() { long rc; rc=startWinsock(); if(rc!=0) { printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1; } else { printf("Winsock gestartet!\n"); } return 0; } int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); }Das will ich compiliert haben.
Habs damit probiert:
#include <iostream> using namespace std; int main() { cout << "code::blocks" << endl; }Aber Code::Blocks hat nicht kompiliert. Dev.C++ schon. ???
-
1. Du bist immer noch im falschen Forum :p
2. Ich verwende den Code::Blocks nicht.
3. Das ist C & WinAPI, wie kommst du überhaupt auf die Idee das im C++ Forum zu posten?
4. Du musst dieWs2_32.liblinken. Das tut man irgendwo unter den Compileroptionen, ähnlich wie bei DevCpp auch. Einfach mal die Compileroptionen des Code::Blocks durchstöbern.
5. Zu jedemWSAStartupfolgt auch eineWSACleanup.
http://msdn.microsoft.com/en-us/library/ms742213.aspx
6.WSAStartupgibt keinlong, sondern einintzurück.
7. Für die Entwicklung in WinAPI auf Windows wäre wohl die Microsoft Visual Studio Express Edition IDE besser geeignet, aber das ist wohl auch ein wenig Geschmacksache.Grüssli
-
ld.exe||cannot find -lWs2_32.lib| ||=== Build finished: 1 errors, 0 warnings ===|
-
skullyan schrieb:
ld.exe||cannot find -lWs2_32.lib| ||=== Build finished: 1 errors, 0 warnings ===|
Wohl nicht in den standard-link-pfaden enthalten. Richtigen Pfad mit übergeben (-L oder so).
PS:
#include <stdio.h> // MEEEP das ist C! #include <cstdio> // << besser!
-
pumuckl schrieb:
PS:
#include <stdio.h> // MEEEP das ist C! #include <cstdio> // << besser!Das Programm ist auch C, daher ist
<stdio.h>durchaus richtig. Dieser Code da oben stammt von hier:
http://www.c-worker.ch/tuts/wstut_op.phpskullyan ist einfach nur im komplett falschen Forum. Nicht mal die Sprache war korrekt

Grüssli
-
ups, stimmt, übersehn, dass da auch printf() & Co ankamen...
Dann mal dickes "GZ" an den OP - viel weiter daneben gings wohl nicht mit der Forenwahl
(außer evtl nadrw)
-
HAT SICH ALLES GEKLÄRT. TROTZDEM DANKE @ ALL!!
#include <windows.h> #include <winsock2.h> #include <iostream> #include <cstdio> using namespace std; //Prototypen int startWinsock(); int main() { int rc; rc=startWinsock(); if(rc!=0) { printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1; } else { cout << "Winsock gestartet!\n" << endl; } return 0; } int startWinsock() { WSADATA wsa; return WSAStartup(MAKEWORD(2,2),&wsa); }Zufrieden?
is zwar bissel c mit cpp gemixt aba was solls
-
Naja - es ist nicht gerade sinnvoll, nach jeder Zeile eine Zeile frei zu lassen...
und du solltest auch das letzte printf durch cout ersetzen:
std::cout << "Fehler: startWinsock, fehler code: " << rc << std::endlbb
-
skullyan schrieb:
if(...) { printf(...); } else { cout << ... << endl; }Der gehört ins kuriositätenkabnett

Nix für ungut

-
Hm, Eclipse ist meiner Meinung nach besser als Code::Blocks, wie auch immer.
In Eclipse kannst du ein Projekt folgendermassen kompilieren, linken und ausfuehren lassen.
1. Shift + Strg + S (falls nicht gespeicherte Dateien im Projekt offen liegen, wird gefragt, ob man speichern moechte, sodass dieser Punkt nicht unbedingt noetig ist)
2. Strg + B (kompiliert und linkt das aktuelle Projekt ('Build All'))3. entweder Strg + F11 (ausfuehren ohne in die Debug-Sicht zu wechseln)
oder F11 (oeffnet die Debug-Werkzeuge)Gruss
Cartman