Hallo Zusammen, ich habe mir Qt heruntergeladen und beabsichtige evtl. auch mit diesem Framework in Zukunft zu arbeiten... Dazu habe ich aber noch ein paar Fragen, die ich irgendwie nicht beantworten kann...Vielleicht kann mir da einer helfen. 1. Thematik Lizenzierung: Ich würde gern die Programme nur intern laufen lassen, somit nicht verkaufen etc. Gibt es dazu irgendwelche Lizenzierungs-Probleme oder ist das dann nicht der Fall? (Sorry für diese Amateuerfrage...) 2. Qt wird ja als Open-Source "gehandelt". Ich habe mir das Qt Framework herunter geladen und sehe das aber lediglich Header Files (Qt\5.15.0\mingw81_64\include), der eigentliche Source Code ist aber mMn nicht frei zugänglich (Qt\5.15.0\mingw81_64\lib). Wo sind denn die Source Files der Klassen hinterlegt? 3. Wenn ich eine normale Konsolenanwendung starte, dann beginnt das Programm ja mit der main Funktion. Was passiert "vor" der main? Kann das irgendwo eingesehen werden? Vielen Dank. Grüße
:
Bearbeitet durch User
Das Unterforum PC-Programmierung wäre passender gewesen. Alexander M. schrieb: > 1. Thematik Lizenzierung: Ich würde gern die Programme nur intern laufen > lassen, somit nicht verkaufen etc. Gibt es dazu irgendwelche > Lizenzierungs-Probleme oder ist das dann nicht der Fall? Intern kannst du tun und lassen was du willst. > 2. Qt wird ja als Open-Source "gehandelt". Ich habe mir das ... > Wo sind denn die Source Files der Klassen hinterlegt? Vielleicht hast du nur die Biblothek(en) und nicht die Quellen erwischt? Das Downloadfile sollte so um die 600 MByte haben. > 3. Wenn ich eine normale Konsolenanwendung starte, dann beginnt das > Programm ja mit der main Funktion. Was passiert "vor" der main? Kann das > irgendwo eingesehen werden? Vor der main kommt der Startupcode. Der kommt mit der libc.
Alexander M. schrieb: > Gibt es dazu irgendwelche Lizenzierungs-Probleme Mein. > der eigentliche Source Code ist aber mMn nicht frei zugänglich Doch ist er. Ich habe da schon oft rein geguckt. Die Quelltexte sind im Qt Maintenance Tool als separates optionales Paket installierbar. > Was passiert "vor" der main? Kann das irgendwo eingesehen werden? Das hängt von deinem C Bibliothek ab, ist nicht Qt spezifisch. Im Grunde genommen initialisiert er alle globalen und statischen Variablen und Objekte. Das steht aber in jedem C Buch, deswegen wundere ich mich, dass du fragst. Das hier ist z.B. der Startup Code für den STM32F103. Aufgrund der Kommentare finde ich ihn aufschlussreich:
1 | /**
|
2 | * @brief This is the code that gets called when the processor first
|
3 | * starts execution following a reset event. Only the absolutely
|
4 | * necessary set is performed, after which the application
|
5 | * supplied main() routine is called.
|
6 | * @param None
|
7 | * @retval : None
|
8 | */
|
9 | |
10 | .section .text.Reset_Handler |
11 | .weak Reset_Handler |
12 | .type Reset_Handler, %function |
13 | Reset_Handler: |
14 | |
15 | /* Copy the data segment initializers from flash to SRAM */
|
16 | movs r1, #0 |
17 | b LoopCopyDataInit |
18 | |
19 | CopyDataInit: |
20 | ldr r3, =_sidata |
21 | ldr r3, [r3, r1] |
22 | str r3, [r0, r1] |
23 | adds r1, r1, #4 |
24 | |
25 | LoopCopyDataInit: |
26 | ldr r0, =_sdata |
27 | ldr r3, =_edata |
28 | adds r2, r0, r1 |
29 | cmp r2, r3 |
30 | bcc CopyDataInit |
31 | ldr r2, =_sbss |
32 | b LoopFillZerobss |
33 | /* Zero fill the bss segment. */
|
34 | FillZerobss: |
35 | movs r3, #0 |
36 | str r3, [r2] |
37 | adds r2, r2, #4 |
38 | |
39 | LoopFillZerobss: |
40 | ldr r3, = _ebss |
41 | cmp r2, r3 |
42 | bcc FillZerobss |
43 | |
44 | /* Call the clock system intitialization function.*/
|
45 | bl SystemInit |
46 | /* Call static constructors */
|
47 | bl __libc_init_array |
48 | /* Call the application's entry point.*/
|
49 | bl main |
Anmerkung: Die Prozedur SystemInit() ist standardmäßig leer. Darunter wird main() aufgerufen. So ähnlich wird es wohl in jedem C/C++ Programm aussehen.
> Gibt es dazu irgendwelche Lizenzierungs-Probleme oder ist das dann > nicht der Fall? Laesst sich nicht ganz so einfach beantworten weil sich da auch immer mal was aendert und vor kurzem haben sie mal wieder angefangen an der Kohleschraube zu drehen. Aber bisher ist es noch so das du fuer rein private Nutzung keine Probleme hast. Mein Eindruck: In der Vergangenheit hat Qt immer so eine Art Eiertanz hingelegt. Auf der einen Seite haetten sie schon gerne mehr Kohle eingesackt, aber sie konnten es nicht weil sie es sich nicht erlauben konnten zu viele Nutzer vor den Kopf zu stossen. Mittlerweile werden sie mutiger. Ich denke das wird noch 2-3Jahre so weitergehen und dann sind genug Leute angepisst um was eigenes auf die Beine zu stellen. > Wo sind denn die Source Files der Klassen hinterlegt? Keine Ahnung wo, aber irgendwo gibt es die. Ich hab die selber vor 10Jahren scho nmal runtergeladen und neu uebersetzt. Ist aber megafett. Damit kannst du deinen Rechner schon eine weile beschaeftigen. Und das muss auch nicht unbedingt fuer jede Libarie gelten. Qt versucht IMHO durch immer mehr Libaries ein immer staerkeres Vendor lock in zu erreichen. > Was passiert "vor" der main? Das hat nichts mit Qt zutun sondern ist eine Sache des C/C++ Compilers. Da gibt es irgendwo ein Startupfile. Hat mich ausserhalb von Crossassembling aber noch nicht besonders interessiert. Funktioniert ja. :-) Olaf
Olaf schrieb: > Laesst sich nicht ganz so einfach beantworten weil sich da auch immer > mal > was aendert und vor kurzem haben sie mal wieder angefangen an der > Kohleschraube zu drehen. Lässt sich eigentlich ganz einfach beantworten, da die Sourcen Open source sind, und auch bleiben werden. Oliver
Oliver S. schrieb: > Lässt sich eigentlich ganz einfach beantworten, da die Sourcen Open > source sind, und auch bleiben werden. "Open Source" heißt erst einmal nur, dass du rein gucken darfst. Inwiefern du die Quelltexte oder die darauf generierten Binaries benutzen darfst, geht aus der Lizenzvereinbarung hervor. Wenn alles, was man lesen darf, völlig frei wäre, dürfte man uneingeschränkt aus jedem Buch kopieren.
Vielen Dank euch ;) Zu 1.: Um ganz sicher zu gehen: Ich kann tun und lassen, was ich will, wenn ich die Software intern verwende, auch wenn ich dadurch natürlich Kosten einsparen kann und somit einen Wettbewerbsvorteil bekomme. Zu 2.: Ja genau, hab nur die Libraries ohne Source-Files. Werde aber mir jetzt das mit dem Maintenance Tool nochmal genauer anschauen. Vielleicht da noch eine weitere Frage, damit ich da auch Gewissheit habe: das .Net Framework ist ja eben nicht Open-Source oder? Zu 3.: Danke. Grüße
Alexander M. schrieb: > Zu 1.: > Ich kann tun und lassen, was ich will, wenn ich > die Software intern verwende Ja > das .Net Framework ist ja eben nicht Open-Source oder? Doch ich denke schon: https://referencesource.microsoft.com/
Moin, - Qt hat die Lizenzbedingungen massiv veraendert seit QT6: - OpenSource ist wirklich OpenSource, d.h. Du bist verpflichtet den Quelltext Deines Programmes an den Benutzer zu geben (Du sagtest "intern" ich nehme mal ab, Kollegen). Ob der Boss das auch so mag -> weiss ich nicht. Mit dem Bestaetigung der "Open Source"-Version schliesst Du einen Vertrag (oder der Geschaeftsfuehrer), der sehr strikt ist. - Die OpenSource-Versionen werden jetzt ein Jahr abgelagert, d.h. Du bekommst keine Updates der Libraries. Ob das auch fuer kritische Fehler (Datenverlust, Escalierung der Priviligien) gilt: Keine Ahnung (d.h. keine Aussage seitens Qt). Diese beiden Unsicherheiten haben dazu gefuehrt, dass ich Qt nicht mehr einsetze. Das ist schade, aber das Risiko war mir zu hoch (und das Abo zu teuer). Bischen Info: https://www.heise.de/news/Qt-6-Abomodell-koennte-zum-Fallstrick-fuer-kommerzielle-Kunden-werden-4942027.html https://www.heise.de/developer/meldung/Qt-Plaene-fuer-2020-Qt-6-und-verzoegerte-Open-Source-Releases-4700398.html Gruesse Th.
Alexander M. schrieb: > 2. Qt wird ja als Open-Source "gehandelt". Ich habe mir das Qt Framework > herunter geladen und sehe das aber lediglich Header Files > (Qt\5.15.0\mingw81_64\include), der eigentliche Source Code ist aber mMn > nicht frei zugänglich (Qt\5.15.0\mingw81_64\lib). > Wo sind denn die Source Files der Klassen hinterlegt? http://ftp.fau.de/qtproject/official_releases/qt/
Danke! Hm das macht alles irgendwie nicht einfacher... Das mit dem Abomodell ist ja echt ein ziemlicher Negativpunkt. Gibt es denn aktuell schon komplette Open Source Frameworks, die ähnliches abbilden wie .net / Qt? (Ich weiß nicht warum, aber irgendwie habe ich eine persönliche Abneigung gegen C# / .Net / Microsoft, ich hab's mir aber auch noch nie genauer angeschaut) Muss ich mir mal morgen nochmal überlegen, welches Framework da für meine Zwecke am ehesten passt... Grüße
:
Bearbeitet durch User
Thomas W. schrieb: > - OpenSource ist wirklich OpenSource, d.h. Du bist verpflichtet den > Quelltext Deines Programmes an den Benutzer zu geben Du meinst freie Software. Soweit ich weiß, gilt das aber nur für neue Module, die ab jetzt bevorzugt nur noch unter GPL und nicht mehr wie bisher auch unter LGPL verfügbar sind. > - Die OpenSource-Versionen werden jetzt ein Jahr abgelagert, d.h. Du > bekommst keine Updates der Libraries. Du bekommst sie halt um ein Jahr verzögert. > Diese beiden Unsicherheiten haben dazu gefuehrt, dass ich Qt nicht mehr > einsetze. Das ist schade, aber das Risiko war mir zu hoch (und das Abo > zu teuer). Der größte Hammer ist meiner Meinung nach, dass man bei Ablauf der Lizenz seine eigene Software nicht nur nicht mehr weiterentwickeln (was ja verständlich wäre), sondern die bereits fertig entwickelte Software auch nicht mehr weiter verkaufen darf! Wenn's da, aus welchen Gründen auch immer, bei der Verlängerung zu Schwierigkeiten oder Verzögerungen kommt, kann das eine Firma schnell kaputt machen. Ob das so ein schlauer Zug war? Da werden vermutlich viele kommerzielle Nutzer sich abwenden, weil ihnen das Risiko zu hoch ist. Thomas W. schrieb: > https://www.heise.de/developer/meldung/Qt-Plaene-fuer-2020-Qt-6-und-verzoegerte-Open-Source-Releases-4700398.html Da heißt es: "Als Grund nennt das Unternehmen die finanziellen Einbußen in der Corona-Krise, die sie zwinge, kurzfristig die Einnahmen zu verbessern." Das klingt mir nach einem Schein-Argument. Die Zahlen zumindest für die ersten drei Quartale 2020 waren ziemlich gut. Auf https://f.hubspotusercontent10.net/hubfs/149513/_website/QtV2/QtV2%20Investors/Q3_2020_interim_statement.pdf heißt es dann auch: "On the whole, however, the impacts of the COVID-19 epidemic on the company’s business has thus far been relatively minor"
:
Bearbeitet durch User
Bei FLTK: LPGL + Static Linking frei https://www.fltk.org/COPYING.php Bei Qt sind die Lizenzbedingungen so lang, dass sie FAQs machen mussten: https://www.qt.io/faq/tag/qt-commercial-licensing https://www.qt.io/faq/tag/qt-open-source-licensing
Ich bewege mich zunehmend in Richtung Web-Anwendungen, wo die Ausgabe im Browser stattfindet. Wenn man es da mit Spezial-Design nicht übertreibt, ist das zukunftssicher. Bibliotheken für XML, JSON, Zeichensätze, etc. bekommt man auch woanders.
Thomas W. schrieb: > - Die OpenSource-Versionen werden jetzt ein Jahr abgelagert, d.h. Du > bekommst keine Updates der Libraries. Ob das auch fuer kritische Fehler > (Datenverlust, Escalierung der Priviligien) gilt: Keine Ahnung (d.h. > keine Aussage seitens Qt). Da geht es um die LTS-Versionen.
Vielen Dank für die Antworten. Mit welchen Software-Paketen arbeitet ihr denn dann so bzw. habt ihr da Meinungen, welche SDKs bzw. Programmiersprachen aktuell verwendet werden "für die Industrie"? Ich meine halt, viele Hersteller von Sensoren etc. bieten aktuell (leider) für ihre Schnittstellen öfters nur C# Libraries an. Wird sich das eurer Meinung nach vielleicht in Zukunft ändern? Oder bin ich da sogar vielleicht falsch informiert und das ist gar nicht so? Speziell geht's mir da natürlich um den Vergleich C++ / C#, oder geht's vielleicht in die Richtung Python und alle Sensoren Schnittstellen werden damit ausgestattet? Grüße
:
Bearbeitet durch User
Qt ist für mich seit vielen Jahren eine gute Alternative zu Frameworks von Microsoft und Oracle (Java). Auf Mikrocontroller würde ich es aber wohl kaum einsetzen, und erst recht kein Python. Für Mikrocontroller nutze ich C, machmal auch C++. Ich könnte mir dort auch Basic vorstellen.
Stefan ⛄ F. schrieb: > Qt ist für mich seit vielen Jahren eine gute Alternative zu Frameworks > von Microsoft und Oracle (Java). > > Auf Mikrocontroller würde ich es aber wohl kaum einsetzen, und erst > recht kein Python. Für Mikrocontroller nutze ich C, machmal auch C++. > Ich könnte mir dort auch Basic vorstellen. Danke ;) Ja mir ging's jetzt auch nicht um den Embedded Bereich, eher um den Bereich "1 Stufe darüber". Werde da wohl mal die Hersteller-Seiten der Sensortechnik etc. durchforsten und schauen, was da so die gängigsten Schnittstellen-Sprachen sind ;) Grüße
Ich kann dir nicht folgen. Was hat ein Sensor mit der Programmiersprache zu tun? Sensoren haben Hardwareschnittstellen und Übertragungsprotokolle. Sofern diese offen dokumentiert sind (was ich für selbstverständlich halte), kannst du sie theoretisch in jeder Programmiersprache ansteuern. Bedenke aber, dass einige Programmiersprachen ab Werk nur sehr wenige Schnittstellen ansprechen können. Java zum Beispiel kann nur stdin, stdout und Netzwerk. Die meisten Programmiersprachen haben irgendwie die Möglichkeit C Bibliotheken anzubinden, womit dir die ganze Welt offen steht.
> der Sensortechnik etc. durchforsten und schauen, was da so die > gängigsten Schnittstellen-Sprachen sind ;) Ich glaube du weisst nicht wovon du redest. Eine Schnittstelle hat nichts mit der Programmiersprache zutun mit der ein Programmierer sie nutzen will. Olaf
> der Sensortechnik etc. durchforsten und schauen, was da so die > gängigsten Schnittstellen-Sprachen sind ;) Die Programmiersprachen dafür heissen U und I.
Du könntest Dir auch mal Cooperspice anschauen. Das ist ein Fork von Qt 4.x. Verfügbar unter https://www.copperspice.com/ Hatte aber selbst noch keine Zeit es mir anzuschauen.
Alexander M. schrieb: > ich habe mir Qt heruntergeladen und beabsichtige evtl. auch mit diesem > Framework in Zukunft zu arbeiten... [...] > 1. Thematik Lizenzierung: Ich würde gern die Programme nur intern laufen Naja, durch die jüngsten "Ideen" zur Lizenzierung hat sich Qt selbst ins Aus gekegelt. Klar, Qt hat noch das Momentum all seiner vergangen, guten Jahre, und wird noch eine ganze Weile eine gewichtige Rolle spielen. Aber das Ende ist eingeläutet.
Experte schrieb: > Klar, Qt hat noch das Momentum all seiner vergangen, guten Jahre, und > wird noch eine ganze Weile eine gewichtige Rolle spielen. Aber das Ende > ist eingeläutet. Ich nutze Qt seit Version 2 im Jahr 2000. Seit dem wurde es schon oft für Tot erklärt wurde. Dennoch ist es noch da, irgendwie.
Stefan ⛄ F. schrieb: > Bedenke aber, dass einige Programmiersprachen ab Werk nur sehr wenige > Schnittstellen ansprechen können. Java zum Beispiel kann nur stdin, > stdout und Netzwerk. C kann nicht mal Netzwerk. Stefan ⛄ F. schrieb: > Ich nutze Qt seit Version 2 im Jahr 2000. Seit dem wurde es schon oft > für Tot erklärt wurde. Dennoch ist es noch da, irgendwie. Ich habe mit Qt 1.4 angenfangen. Irgendwo liegt noch das Buch rum, das ich dazu mal gekauft hatte - mit Ausblick darauf, was in Qt 2 kommen wird ;-) Was ich jetzt aber sehe: Qt hat sich eine ordentliche "user base" aufgebaut und verärgert die jetzt durch diese Lizenzkapriolen, und zwar Business-Kunden und OpenSource-Entwickler gleichermaßen. Klar werden das viele weiter benutzen, schon alleine weil man bestehende Software nicht einfach mal schnell auf was anderes umstellt. Aber die Frage ist, wie es mit Neukunden aussieht, oder mit neuen Projekten bei Bestandskunden.
:
Bearbeitet durch User
Rolf M. schrieb: > C kann nicht mal Netzwerk. Richtig. Aber die mir geläufigen Betriebssysteme (außer Android) stellen alle Schnittstellen mit C Interface bereit. Also sind in C alle Schnittstellen ohne Umwegen nutzbar.
Rolf M. schrieb: > Qt hat sich eine ordentliche "user base" > aufgebaut und verärgert die jetzt durch diese Lizenzkapriolen, und zwar > Business-Kunden und OpenSource-Entwickler gleichermaßen. Als kleiner Trost: Wenn sie es mit ihren Lizenzspielchen zu weit treiben, wird die QT unter BSD-Lizenz freigegeben. https://kde.org/community/whatiskde/kdefreeqtfoundation/
Alexander M. schrieb: > Hm das macht alles irgendwie nicht einfacher... Das mit dem Abomodell > ist ja echt ein ziemlicher Negativpunkt. Gibt es denn aktuell schon > komplette Open Source Frameworks, die ähnliches abbilden wie .net / Qt? Was genau ist denn dein Problem? Qt IST vollständig Open source. GPL, einige libs auch LPGL. Damit kannst und darfst du Software für den Eigengebrauch, auch in einer Firma, erstellen. Die Abos brauchst du erst, wenn du entweder damit erstellt Software vertreiben willst, ohne dabei der GPL zu entsprechen, oder wenn du Support willst. An dem Open-Source-Status wird sich auch nichts ändern. Wenn du wissen willst, warum das so ist, lies nach. Google und Wikipedia wissen Bescheid. Oliver
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.