Multithreading, OpenMP ohne dyn. Linken
-
Ich will eine multithreaded Library auliefern, und zwar möglichst
kundenfreundlich. Ich bin mit OpenMP und Boost-Thread vertraut, aber Boost
ist unter Win64 nicht ganz einfach zu installieren, und OpenMP gibt es
glaub ich für die Express-Versionen von Visual Studio nicht oder zumindest
nicht ohne Frickelei. Ich will auch nicht alle möglichen Boost-Libs
mitausliefern. Gibt es vielleicht eine Header-only-Library *träum* für
Multithreading oder notfalls die Möglichkeit, das nötige Zeug statisch zu
linken? Soll aber unter Linux und Windows funktionieren.
-
Nun, es gibt native Threadunterstützung in C++11. Die eigentlichen Threadingbibliotheken dahinter (z.B. pthread unter Linux) sollte man (zumindest unter Linux) zwar auch nicht statisch linken, aber das ist auch gar nicht nötig, da diese zum Grundstandard des Betriebssystems gehören.
Mit Windows kenne ich mich nicht so aus, sollte ähnlich sein.
-
SeppJ schrieb:
Nun, es gibt native Threadunterstützung in C++11. Die eigentlichen Threadingbibliotheken dahinter (z.B. pthread unter Linux) sollte man (zumindest unter Linux) zwar auch nicht statisch linken, aber das ist auch gar nicht nötig, da diese zum Grundstandard des Betriebssystems gehören.
Mit Windows kenne ich mich nicht so aus, sollte ähnlich sein.Daran habe ich schon gedacht. Aber das scheitert an MSVC: VS2010 kann kein
Concurrency:http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx
(Ich hab mein schönes C++11-Buch wieder weggelegt, weil mein Zeug auch auf
VS2010 compilieren muß und der noch nicht einmal range-based-loops kann.)
-
Du kannst ja statt dem Visual STudio einfach den GCC verwenden. Der hat _UM WELTEN_ bessere C++11 Unterstuetzung, und ist ebenfalls gratis. Als IDE ist evlt. Code::Blocks geeignet.
-
Blue-Tiger schrieb:
Du kannst ja statt dem Visual STudio einfach den GCC verwenden. Der hat _UM WELTEN_ bessere C++11 Unterstuetzung, und ist ebenfalls gratis. Als IDE ist evlt. Code::Blocks geeignet.
Ich entwickle ohnehin unter Linux mit GCC, aber das hilft nicht, denn es
geht darum, eine Library auch als *.dll für VS2010 User verfügbar zu machen.
-
Vielleicht ist das was für dich:
http://tinythreadpp.bitsnbites.eu/
Abgesehen davon, kann man Boost auch statisch linken ...
-
Bloops schrieb:
Vielleicht ist das was für dich:
http://tinythreadpp.bitsnbites.eu/
Abgesehen davon, kann man Boost auch statisch linken ...
(+++) Das sieht genau nach dem aus, was ich brauche. Danke!
Boost hätte ich statisch linken können, das stimmt. Ich habe aber auch eine
Abhängigkeit im Projekt, die nur dynamisch gelinkt werden kann und ich bin
mir nicht sicher, ob man statisch und dynamisch Linken mischen kann? Wenn
ich dem gcc das "-static" gebe, will er ja alles statisch machen.
-
MTx7 schrieb:
ich bin
mir nicht sicher, ob man statisch und dynamisch Linken mischen kann? Wenn
ich dem gcc das "-static" gebe, will er ja alles statisch machen.Doch das geht, es gibt sogar viele Wege:
Google: gcc link some libraries statically
-
SeppJ schrieb:
MTx7 schrieb:
ich bin
mir nicht sicher, ob man statisch und dynamisch Linken mischen kann? Wenn
ich dem gcc das "-static" gebe, will er ja alles statisch machen.Doch das geht, es gibt sogar viele Wege:
Google: gcc link some libraries staticallydanke!