Threadart auch Linux kompatibel?
-
Nein, das wird so nicht unter Linux baubar sein.
boost.thread wäre eine Alternative.
-
Danke für den Tipp!

-
Muss man für Boost Threads extra ne Software installieren?
(http://www.boost.org/ Version 1.39.0)
Oder reicht es die benötigten Bibliotheken in den Projektordner zu packen?
und wichtig: Ist boost freie Software?
-
WAR][FIRE schrieb:
Muss man für Boost Threads extra ne Software installieren?
Du musst keine Software installieren, aber du musst die Bibliotheken kompilieren. Boost.Thread selber und Boost.Thread braucht auch noch Boost.DateTime.
Wie man das macht, steht alles auf Boost:
http://www.boost.org/doc/libs/1_39_0/more/getting_started/index.htmlWAR][FIRE schrieb:
und wichtig: Ist boost freie Software?
Boost ist komplett frei.
Grüssli
-
Ist boost soetwas wie eine Bibliothekssammlung für plattformunabhängige Programme?
Kann man mit boost auch Sockets erstellen die unter Windows UND Linux laufen?
-
WAR][FIRE schrieb:
Ist boost soetwas wie eine Bibliothekssammlung für plattformunabhängige Programme?
Ja, könnte man so bezeichnen. Allerdings geht es nicht einfach nur um Platformunabhängigkeit, es sollen Dinge bereitgestellt werden, welche der Programmierer immer wieder braucht. Boost wird oft als inoffizielle Erweiterung der Standardbibliothek von C++ angesehen.
WAR][FIRE schrieb:
Kann man mit boost auch Sockets erstellen die unter Windows UND Linux laufen?
Ja. Alle Bibliotheken von Boost laufen auf Windows, Linux, Mac und noch ein paar anderen Platformen.
Aber das steht alles auf Boost. Lern lesen und suchen, wobei die meisten Informationen direkt auf der Startseite zu finden sind

Grüssli
-
Dravere schrieb:
Ja. Alle Bibliotheken von Boost laufen auf Windows, Linux, Mac und noch ein paar anderen Platformen.
Wenn das stimmt und die Handhabung von Boost sehr einfach ist, dann würden sich all meine plattformunabhängigkeitsprobleme ja in Luft auflösen

Danke schonmal für diesen großartigen Tipp! Ich werd jetzt dann mal probieren etwas selbstständiger zu forschen

Gruß
WAR][FIRE
-
Boost ist eine Library-Sammlung. Es ist keine große Einheit. Es wird alles mögliche gesammelte, was von der Community über ein Abstimmungsverfahren akzeptiert wird (kann jeder mitmachen!).
Es muß auch nicht unbedingt was mit Platformen zu tun haben. Die Mehrheit der Boost-Libs haben nichts mit Platformen, sondern sind einfach für jeden C++ler nützlich: String-Verarbeitung, Parser, Smartpointer, Signal/Slots usw.
Und nur ein kleiner Teil ist für Platform-Unabhängigkeit, wie z.B. Threads oder Dateisystem-Zugriffe (Verzeichnisse auslesen usw.).
-
WAR][FIRE schrieb:
Wenn das stimmt ...
Ich lüge doch nicht und es steht ja auch auf der Boostseite ... tz

WAR][FIRE schrieb:
... und die Handhabung von Boost sehr einfach ist, ...
Ich würde hier mal ein paar Warnungen platzieren:
- Die Bibliotheken wurden so gebaut, dass sie sehr flexibel sind.
- Dies führt allerdings dazu, dass sie zum Teil etwas komplex aufgebaut sind.
- Gute Kenntnisse in C++ sind sehr zu empfehlen.
- Und vor der Boost Dokumentation möchte ich die auch warnen. Sie ist sehr gut, was die Erklärung der Verwendung angeht, aber behandelt meistens kaum das eigentliche Thema. Also in der Boost.Thread Dokumentation wirst du zum Beispiel alles über die Verwendung von Boost.Thread finden, aber nichts darüber, wie man mit Threads umgehen sollte.WAR][FIRE schrieb:
... dann würden sich all meine plattformunabhängigkeitsprobleme ja in Luft auflösen
Boost ist leider auch nicht die ultimative Lösung. Es hat noch bei weitem nicht für alles eine Bibliothek. GUI ist zum Beispiel überhaupt nicht vorhanden und wird es wohl auch nicht so bald geben. Es gibt viele Bereiche, welche nicht abgedeckt sind. Und Boost geht es ja auch nicht darum, alle Bereich abzudecken. Es sollen hilfreiche Werkzeuge bei der Entwicklung von Programmen geboten werden. Dinge, welche man immer wieder braucht.
Die Werkzeuge und Bibliotheken sind deshalb auch allgemein gehalten. Sie sollen für ein breites Spektrum angewendet werden können. Das heisst dann wiederrum, dass man gewisse Dinge selber machen muss, wenn man einen Spezialfall hat.Grüssli
-
Nun komm ich auch direkt mit dem ersten Fehler.
Laut der Einführung bei boost.org benötigt die Thread Bilbliothek eine Library. Diese soll eingebunden werden wenn man den Ordner "Lib" aus dem Boost_1_39_0 Verzeichnis als Libary Verzeichnis angibt.
Der Compiler(Visual Studio) jagt folgende Fehlermeldung raus:
Error 1 fatal error LNK1104: cannot open file 'libboost_thread-vc90-mt-gd-1_39.lib' boost_threads boost_threads
Dabei gibt es diese Library in diesem Ordner (Lib) garnicht.....
.... Wieso war mir dieses Boost Projekt vorher eigentlich noch nicht bekannt gewesen?..... *grübel grübel* :p
-
WAR][FIRE schrieb:
Dabei gibt es diese Library in diesem Ordner (Lib) garnicht.....
Hast du auch die Boost Bibliotheken korrekt über Bjam kompiliert? Steht zwar auch in der Einführung, aber aus einem unerklärlichen Grund überspringen es 99% der Leser, wahrscheinlich weil sie die Seite nicht genau genug lesen ...
Grüssli
-
Na, du mußt die Library ja erstmal bauen, mit bjam! Den Getting Started Link hat dir Davere ja bereits genannt.
Die meisten Boost-Libs sind reine Header-Libs (weil Templates!). Aber manche wenige Libs sind als Binary-Libs nötig (und Boost.Thread gehört dazu). Die musst du für deine Platform und für deinen Compiler selber bauen! Das kann Boost garnicht leisten, weil schon der Build für MSVC bei mir >500 MByte groß ist. Wenn die das für jeden Compiler und Platform zum Download bereit stellen würden, würde boost.org explodieren.
Also, Getting Started lesen!
-
Das hier ist vielleicht auch noch interessant.
http://www.highscore.de/cpp/boost/
-
Artchi schrieb:
Das kann Boost garnicht leisten, weil schon der Build für MSVC bei mir >500 MByte groß ist. Wenn die das für jeden Compiler und Platform zum Download bereit stellen würden, würde boost.org explodieren.
Ok das klingt logisch. Mein armer Prozessor leidet gerade ganz schön beim erstellen mit bjam

Hoffentlich klappt es dann. Man man das spart sich echt eine menge Arbeit mit Boost. Selbst wenn es nicht soo einfach ist wie du schon sachtest.
Aber eine gute Sache für Programmierer ist es allemal
Das das wird in meine Bachelorarbeit mit einfließen, die ich möglichst schnell fertig bekommen möchte
kann sein das ich ab und an daher nochmal nerfen werde 
Edit:
Braunstein schrieb:
Das hier ist vielleicht auch noch interessant.
http://www.highscore.de/cpp/boost/Diese Sprache lässt sich gleich 5 x fließender lesen. Thx

-
*klopf* *klopf*
*guck ob Artchi und Dravere nicht schon mitm Knüppel auf mich warten*
Keiner da

Also ich hab da noch zwei Fragen:
1. bjam hat nun 2 ziemlich große Ordner erstellt. Einmal den "Stage" Ordner mit den Librarys und einmal einen "bin.v2" der unter anderem DLL Files und Objektdateien enthält. Kann ich den "bin.v2" Ordner löschen?
2. Ich bekomme hier gerade sehr erfolgreich (für den ersten Versuch) Threads zum laufen. Nun finde ich aber nichts zum Thema Socket erstellung. Spezieller: Aufbau einer Verbindung über das TCP-IP Protokoll. Gibt es da bei boost auch was zu? Ich finde leider nichts

Gruß
WAR][FIRE
-
Zu 2.
Boost.Asio bietet eine Socket Library.
Simon
-
theta schrieb:
Zu 2.
Boost.Asio bietet eine Socket Library.
SimonIst dort auch ein einfacher Datenaustausch via. recv(..) und send(..) möglich?
-
Dieses v2 kannste Löschen. Eintragen mußt du in die MSVC-Verzeichnis-Optionen:
Für Includes:
C:\Boost_XXXXWenn TR1 mit dabei sein soll:
*C:\Boost_XXXX\boost\tr1\tr1
C:\Boost_XXXX
*
Für Libs:
C:\Boost_XXXX\stage\lib
-
WAR][FIRE schrieb:
Ist dort auch ein einfacher Datenaustausch via. recv(..) und send(..) möglich?
Also ehrlich:
Tutorial: http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial.html
Referenz: http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/reference.htmlLies selber nach, lesen kannst du ja wohl noch, oder? Und schon nur die Frage. Eine Socketbibliothek, welche keinen Datenaustausch zulässt? Was wäre das für eine seltsame Bibliothek?
Grüssli