Visual Studio 2019 - statisch linken?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Visual Studio 2019 - statisch linken?

Beitrag von Tiles »

Hi Leute,

Ich hatte grade das Missverngügen ausgerechnet beim neuesten Release festzustellen dass Blender inzwischen seine Libs unter Windows für die Release Version statisch linkt. Meine User haben sich drüber beschwert dass sich Bforartists nicht starten lässt weil die VCRUNTIME140_1.dll fehlt.

Bei der Fehlersuche bin ich dann drüber gestolpert dass eben die Release Version von Blender ein paar Dateien weniger hat als eine die ich selber kompiliere. Siehe Bild. Und seitdem suche ich mir die Griffel wund wie ich VS davon überzeugen kann auch bei meinem Build die DLL's statisch einzubinden. Ich bin da nur nicht wirklich erfolgreich. Halp ^^

Was ich finde sind steinalte Anweisungen für VS 2005 oder 2010, und auch noch in Englisch. Ich habe hier VS 2019 mit deutscher UI. Und finde die angegebenen Sachen da schlicht nicht. Wie bügel ich denn VS bei dass es System DLL's statisch linken soll? :)

LG Tiles
Dateianhänge
vcruntimeproblem.jpg
static.jpg
Zuletzt geändert von Tiles am 22.11.2019, 11:03, insgesamt 1-mal geändert.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio 2019 - statisch linken?

Beitrag von Tiles »

Ein Schritt weiter, aber immer noch am Abgrund. Die Codegenerierung für mein Projekt bforartists von <unterschiedliche Optionen> auf Multithreaded umgestellt. Und der Fehler ist immer noch da. Dann bin ich durch die Projekte durch und habe das für alle anderen auch so eingestellt. Mit dem Ergebnis dass es mir komplett um die Ohren geflogen ist. 500 Kompilerfehler. Ich bin immer noch aufgeschmissen ^^
Dateianhänge
multithreaded.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Visual Studio 2019 - statisch linken?

Beitrag von Schrompf »

Du musst auch *alle* statisch gelinkten Dependencies mit den selben Runtime-Einstellungen bauen, sonst schneit es Linkerfehler. Und evtl. hast Du eine Build Config übersehen. Release vs. Debug zum Beispiel.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio 2019 - statisch linken?

Beitrag von Tiles »

Danke Schrompf. Wieder ein paar Stichworte an denen ich mich weiter hangeln kann. Ich tanze hier grade komplett mit verbundenen Augen übers Eis. Das alles habe ich noch nie gemacht. Bei den Linkerfehlern war ich aber schon als ich versucht habe alle Projekte umzustellen ^^

Der Dialog sagt mir für alle Konfigurationen. Ich hoffe mal das er das auch so meint ^^

Mir würde es ja auch schon langen nur den VCRUNTIME140_1.dll Fehler zu erwischen. Ich glaube auch nicht dass die Blender Jungs alles statisch machen. Die ganzen api-ms- Dateien sind ja auch noch im Ordner.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Visual Studio 2019 - statisch linken?

Beitrag von Schrompf »

Solange Du die konkrete Fehlermeldung nicht mal exemplarisch hier reinkopierst, kann ich auch nur im Dunkeln stochern.

Im Debug-Build: alle Projekte, alle statisch gelinkten Dependencies auf "Multithreaded-Debug" (ohne "DLL")
Im Release-Build: alle Projekte, alle statisch gelinkten Dependencies auf "Multithreaded"

Evtl. gibt das beim Starten dann noch Crashes, wenn Du C++-DLLs ansaugst, die mit ner anderen Runtime gebaut wurden. Aber ein DLL mit ner C++-API ist aus vielen Gründen keine gute Idee, daher vermute ich, dass Du das Problem nicht hast.

[edit] Und die ms-api-dingsis hab ich nie gebraucht. Evtl. führt das zu Fehlern, wenn die da sind, aber nicht passen. Aber das sind, wenn überhaupt, dann nur Laufzeitprobleme, die den Build nicht beeinflussen sollten. Das merkst Du dann erst beim ersten Starten
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio 2019 - statisch linken?

Beitrag von Tiles »

Ja, schon klar. Ich bin halt selber noch am stochern und habe grade noch nichts zum reinpasten. Mir ging es erst mal um die generelle Methode. Wo ich das überhaupt ein- und umstelle. Die ich wohl inzwischen gefunden habe. Um den Laufzeiteintrag zu finden habe ich mich totgegoogelt. Deswegen habe ich hier eigentlich gepostet :)

Das Ding ist komplett von Blender. Und bei denen tut es. Deswegen lange ich da auch nicht an die msapischeisserchen hin. Sondern will versuchen das so zu machen wie die Blender Devs auch. Die haben das bisher nur nicht dokumentiert. Und das ist das erste Mal dass ich auf das Problem stosse. Die haben da vor Kurzem an den Libs rumgefummelt, das weiss ich. Da gibts einen fetten Ordner mit prebuild Libs, den lädst du dir immer extra in ein svn mit runter. Blender 2.81 ist die erste Version mit diesen neuen Libs.

Hm, mir scheint wohl grade nichts anderes übrig zu bleiben als wirklich jedes Projekt versuchen statisch zu machen und zu schaun ob der Fehler noch existiert. Da kannst du mir grade tatsächlich nicht bei helfen. Ich melde mich wieder sobald ich wirklich ein konkretes Problem habe.

Leider macht mir auch noch mein Laptop einen Strich durch die Rechnung. Das ist ja eigentlich mein Testsystem für genau sowas. Ich habe vorhin einfach mal die VCRUNTIME140_1.dll rüberkopiert. Blender schmeisst beim starten jetzt zwar keinen Fehler mehr, der Mecker ist weg. Aber nun crasht es direkt zum Desktop, mit einer access violation in atio6axx.dll. Meine alte ATI Grafikkarte wird wohl nicht mehr unterstützt -.-
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
odenter
Establishment
Beiträge: 207
Registriert: 26.02.2009, 11:58

Re: Visual Studio 2019 - statisch linken?

Beitrag von odenter »

Fehlen denn nur VC-Runtimes?
Falls ja könntest doch alles bei dynamisch lassen und gucken welche VC-Redistributable Pack Du brauchst und schusterst einen Installer zusammen, platt gesprochen.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio 2019 - statisch linken?

Beitrag von Tiles »

Ja, wäre natürlich auch eine Idee. Im Moment scheint aber nur die VCRUNTIME140_1.dll zu fehlen. Dafür brauche ich noch nicht mal eine Redistributable, die kann ich mit in den Install Ordner schmeissen. Was ich vermutlich auch machen werde. Das dauert ein Weilchen bis ich mit meinen Tests durch bin.
Zuletzt geändert von Tiles am 22.11.2019, 18:21, insgesamt 1-mal geändert.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio 2019 - statisch linken?

Beitrag von Tiles »

Ah, Update. Ich habe einfach mal die Blender Jungs gefragt. Und die Ursache ist eine komplett andere. Nix statische Libs. It's a bug. In Cmake ^^

https://gitlab.kitware.com/cmake/cmake/issues/19829
It’s an incompatibility with cmake and the latest vs2019 versions, the builds on blender.org are made with 2017 so that is why our builds worked.
Wengistens habe ich jetzt grundsätzlich gelernt wie man statisch baut XD
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Antworten