Seite 1 von 1

[gelöst]VS Manifest auf Linux wine zum laufen bringen

Verfasst: 25. September 2008 18:31
von patrik08
Seit 2-3 Jahren baue ich mit MINGW meine QT programmen
Nun moechte ich gerne die programmen auch auf Visual Studio 2005 kompatibel haben. Den VS 2005 2GB , habe ich wie auf http://webkit.org/building/tools.html beschrieben installiert. Anschliessend mit einer 10 zeile bat habe ich QT gebaut. super alles ok..

Dann um zu testen ob die programme auf andere Window laufen exe & dll
brauche ich wine auf dem linux debian.

Mit MINGW gebaute programme laufen immer auf Linux Wine (sogar mac wine), aber mit VS 2005 nicht, warum?


ich habe die 3 dll der serie msvcm80.dll und die exe zu wine kopiert + canta.exe.manifest
und komme zum fehler....

Code: Alles auswählen

wine canta.exe
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT"
err:module:LdrInitializeThunk "MSVCR80.dll" failed to initialize, aborting
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\home\\ppk\\__win\\canta.exe" failed, status c0000142
Die exe ist ein simple:

Code: Alles auswählen


// main.cpp : main project file.

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

using namespace System;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello ");
    system("rundll32.exe url.dll,FileProtocolHandler http://www.qtforum.de/forum/viewforum.php?f=1");
	system("Pause");
    return 0;
}

nota: Mit wine meine ich http://www.winehq.org/

Die qt start bat sieht so aus....
aber eben wenn VS 2005 nicht mal ein "Hello World" hinbekommt auf wine... was mache ich oder VS falsch?

Code: Alles auswählen

@echo off
SET QTDIR=C:\dev\qt_4.4.1vs
SET MYSQL=c:\MySQL
CALL "C:\dev\vs\VC\vcvarsall.bat" x86
SET INCLUDE=C:\dev\ms_sdk\Include;C:\dev\externallib\include;%INCLUDE%
SET LIB=C:\dev\ms_sdk\Lib;C:\dev\externallib\lib;%LIB%
SET PATH=%QTDIR%\bin;%MYSQL%\lib\opt;C:\dev\cmake\bin;%PATH%

Verfasst: 25. September 2008 19:11
von patrik08
Sogar wen ich alle MS Visual C++ 200* libraries die es gibt installiere mit:
http://wiki.winehq.org/winetricks
geht es nicht...

Braucht es MS Visual Basic lib?

Verfasst: 25. September 2008 21:27
von patrik08
Also wenn console nicht geht mal mit qt4 normal.

main.cpp

Code: Alles auswählen

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello World!");
label->show();
return app.exec();
}
demo.pro

Code: Alles auswählen

TEMPLATE = app
TARGET = message
DEPENDPATH += .
INCLUDEPATH += .
CONFIG += qt windows release
DESTDIR	+= ./
win32-msvc*{
CONFIG += embed_manifest_exe
## dll is default embed sagt qtdoc.
}
SOURCES += main.cpp

alle files zu wine ohne manifest da ja embed!:
message.exe 13kb
QtCore4.dll 1932kb
QtGui4.dll 6920kb
msvcm90.dll 220kb
msvcp90.dll 560kb
msvcr90.dll 641kb

un wieder bekomme ich die wine meldung ....

Code: Alles auswählen

fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT"
err:module:LdrInitializeThunk "MSVCR80.dll" failed to initialize, aborting 
warum das ?...

is VS so ein zeitvertreib compiler?

Verfasst: 25. September 2008 21:43
von patrik08
Endlich ........

Obwohl VS 2005
will wine vcrun2008
und nicht 2005
http://wiki.winehq.org/winetricks

vcrun2008 MS Visual C++ 2008 libraries (mfc90,msvcp90,msvcr90)

scheinbar ist etwas buggi
vcrun2005sp1 MS Visual C++ 2005 sp1 libraries
so das 2008 das 2005 hinstellt...
IMO:
Wenn es auf wine lauft muss es auch auf einem normalen win32 gehen..