Kompilierte exe nicht auf anderen Rechner ausführbar?
-
Dann hast Du noch was anderes in Dein Eigenschaften umgestellt... z.B. im Linker das "Subsystem... stelle es wieder auf "Console" und es geht...
-
aaah ok
nun läuft es.Aber ich möchte das eigentlich ohne Konsole?
-
Dann ändere Dein "main" nach "WinMain" und stelle es wieder auf /WINDOWS um...
-
du meinst die Funktion
int main(int argc, char* argv[])in
int WinMain(int argc, char* argv[])umbenennen?
Funktioniert nicht..
1>.\main.cpp(6) : warning C4007: 'WinMain': '__stdcall' muss angegeben werden
1>.\main.cpp(6) : error C2731: 'WinMain': Überladen der Funktion nicht möglich
1> .\main.cpp(5): Siehe Deklaration von 'WinMain'
-
und bei
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)kommt wieder der Fehler:
error LNK2001: Nicht aufgelöstes externes Symbol "_wWinMain@16".

-
Anne001 schrieb:
und bei
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)kommt wieder der Fehler:
error LNK2001: Nicht aufgelöstes externes Symbol "_wWinMain@16".

Weil Du LPSTR verwendets und ein Unicode Programm hast. Folgerichtig muss es einen Fehler geben.
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
-
Ja und wie löse ich das Problem?
-
Mach aus "main(...)" =>
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
-
Hallo,
also mit _tWinMain funktionierts auch nicht,
allerdings mit wWinMain klappt alles auch mit Unicode..jetzt konnte ich das Projekt problemlos auf nem anderen Rechner ausführen, sehr schön!
Aber ich habe ein anderes Projekt wo dies noch nicht klappt.
Habe alles dort alles ganz genauso gemacht und dort kamen dann die Linker fehler:MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) ist bereits in LIBCMT.lib(typinfo.obj) definiert.
1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) ist bereits in LIBCMT.lib(typinfo.obj) definiert.
Also habe ich die MSCRTD zur ignorListe hinzugefügt und er konnte es korrekt linken.
Allerdings kam dann wieder der übliche Fehler wenn ich es auf einem anderen Rechner ausführen wollte.In diesem Projekt benutze ich zusätzlich openCV und qextseriellport, aber daran dürfte es doch nicht liegen oder??
-
Kann es sein, dass Du Bibliotheken benutzt, die nicht mit Deinem Compiler erzeugt wurden?
-
ja, naja eigentlich nicht.
also ich habe den übeltäter gefundenes liegt am qexserialport (comport für qt)
das habe ich aber mit dem gleichen compiler kompiliert:
visual studio konsole auf...qmake...dann nmake und dann war die lib dazu da..wenn ich den seriellenport nicht verwende funktioniert alles...
wie bekomme ich das den hin?
muss ich bei qmake oder nmake bestimmte parameter angeben?