Problem VS2010 Prof: Programme laufen nur bei mir



  • Hi Leute,

    ich schreib im Moment mit VS2010 Prof OpenCL Programme.

    Dabei hab ich ein Hostprogramm aus dem das OpenCL Programm aufgerufen wird.

    Der Host ist in C/C++ programmiert, und ruft die OpenCL API auf um damit dann zu arbeiten.

    Soweit so gut. Ich hab inzwischen alle Einstellungen so hinbekommen, das ich die Programme bei mir zum laufen bekomme. Jetzt habe ich allerdings das Problem, das die Programme bei anderen nicht laufen!

    Hab bisher die Fehlermeldung bekommen, dass die mscvp100.dll nicht verfügbar wäre etc.

    Hab darauf hin hier im Forum geschaut und gefunden, das man statisch linken muss, was ich dann auch so eingestellt habe. Allerdings funktionierts immer noch nicht -.-

    Kann mir jemand vielleicht sagen was ich noch anders einstellen muss?

    Auch macht es mich stutzig, das ich z.B. als ich mit Templates gearbeitet habe, und diese in den Verzeichnis-Einstellungen des Projektes angegeben habe, nie die entsprechenden Dateien im Release Mode mit kopiert wurden. Hab immer nur ne Exe und das wars. Muss ich da eventuell auch nochmal was umstellen, das verwendete Dateien mit kopiert werden und gegen diese gelinkt wird, oder packt der das alles in die Exe 😮 Kann aber eigentlich nicht sein, da sie zu klein ist.

    Wäre da auch über nen Tip sehr erfreut.



  • Diese Frage wird so oft gestellt, dass ich mir kaum vorstellen kann, dass Du sie über die Suchfunktion nicht findest:

    1. Runtime Dateien für VC10 installieren vcredist_x86.exe
    http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84

    - oder -
    2. Statisch linken
    http://blog.kalmbach-software.de/2008/03/03/screencast-statically-link-to-the-c-runtime-to-prevent-vcredist-and-overcome-application-configuration-problems/



  • Punkt 1 ist auf jedenfall auszuschliesen.

    Das Programm muss definitv ohne seperate Installation funktionieren.

    Was Punkt 2 angeht, so hab ich das ja wie gesagt schon umgesetzt mit dem statischen linken, nur scheints anscheinend nicht zu funktionieren.

    Da bin ich aber noch dran dies zu evaluieren.

    Im Prinziep will ich einfach, das er alle Dateien die irgendwie benötigt werden automatisch ins Release-verzeichnis kopiert werden, so das der Anwender nichts machen muss außer halt auf die exe zu klicken.

    Das Projekt muss später halt auch leicht portierbar auf Linux sein. Bin mir jetzt nicht sicher, ob das mit VS möglich ist, aber uzr Not muss halt gcc verwendet werden.

    PS: Ich versteh auch nicht ganz, warum ich da jetzt extra Sachen brauch 😕. Ist ja nur nen simpelstes C++ Programm das ich komplett selbst geschrieben hab ohne irgendwelche Vorlagen zu verwenden.



  • 1. Benutz Depends, dann bekommst Du heraus wer welche DLLs benötigt.
    2. Auch die Runtime ateien kannst Du bei VS2010 einfach in das Programmverzeichnis kopieren. VCREDIST musst Du nicht mit ausliefern.



  • Ok, das statische Linken muss wohl doch schon allein gereicht haben, und der Fehler am Treiber von dem, dem ichs zum Testen gegeben hab, gelegen haben.

    Bei einem mit ner Ati gings nämlich so wies zu erwarten war.

    Naja, immer toll wenn man Fehler nicht unterscheiden kann 🙄


Anmelden zum Antworten