help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mkoctave MSVC 2008 Express


From: Tatsuro MATSUOKA
Subject: Re: mkoctave MSVC 2008 Express
Date: Tue, 11 Mar 2008 19:05:02 +0900 (JST)

Hello Michael

I strongly appreciate for your extensive explanation for this problem.
I will try the following but it seem to be not easy work for me.

Hello Huaizu You

Do you want to try the below by yourself and to report results here ?

 At my web page, I described use of VC++ 2008 should be ignored at the moment. 

Regards

Tatsuro


   ""Michael Goffioul" <address@hidden> Wrote

>This is a runtime library problem/mismatch, due to the fact that I compiled
>the octave binary package with MSVC2005, which uses a different runtime
>lib than MSVC2008. This may not be a problem, except for 2 things (at
>least):
>
>1) specific runtime objects will not cross DLL boundaries: for instance a
>FILE* created in one runtime lib will not be valid in the other one
>
>2) runtime lib location/finding (the problem you actually have): WinXP uses
>a mechanism based on manifest files to find and load the correct runtime
>lib. This new mechanism allows MS to have several versions of the same
>library installed side-by-side; the manifest file is then a XML file stating
>which version of the DLL should be loaded for a given executable. There
>2 ways to deal with manifest files:
>    - the manifest file is a separate file installed along the executable: for
>      an executable called prog.exe, the manifest file is prog.exe.manifest
>    - the manifest file is embedded into the executable; I use this option to
>      create the binary package as it does not require installing additional
>      files. As a consequence, octave.exe is "ready" to find and load the
>      MSVC2005 runtime libs (msvcr80.dll and msvcp80.dll); but it is not
>      ready for the MSVC2009 runtime libs.
>
>DLL's that uses this mechanism are located in a subdir of C:\WINDOWS\WinSxS,
>which is the location you should look for when searching for msvcp90.dll. The
>DLL's found in the MSVC2009 installation dir are just provided for
>redistribution.
>However, you can't just add the DLL dir to your PATH variable, this is not the
>way WinXP expects to load those libs and it ends up with the error you see.
>The correct way is through manifest files.
>
>Now, having said that, I'm not sure if there's a way to solve your
>problem: using
>MSVC2008 with the binary package that is compiled with MSVC2005. The only
>way I can think of is to provide a manifest file
>(octave.exe.manifest); but even that
>I'm not sure it'll work, because octave.exe has already an embedded manifest
>file. However, here's what you can try:
>
>1) create a file test.c with this content:
>
>int main(void) { return 0; }
>
>2) compile this file with: cl -MD test.c
>
>3) this creates a manifest file test.exe.manifest
>
>4) copy the manifest file as: <octave_root>\bin\octave.exe.manifest
>
>5) restart octave and try again
>
>The other solution is to rebuild octave with MSVC2008. If anybody wants to give
>it a try, there is a compilation script in octave-forge
>(admin/Windows/msvc/run_compilation.sh)
>that automates almost everything, including downloading and compiling
>dependencies.
>
>Michael.
>

--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]