Thursday, April 28, 2011

How do I use MS C++ Express 2008 to build Perl Unicode::Map on Windows?

I am currently trying to make the Unicode-Map-0.112 module, but encounter an error, '0x1', that is evidently related to using nmake. I tried to follow suggestions on Perl Monks, i.e. http://www.perlmonks.org/?node_id=434813

However, I am unable to use ppm's capabilities because I am on a Windows machine without a network connection, and the only other machine is a Mac. It turns out that MS C++ Express 2008 is installed on the machine, so I would I be able to use it to get past the error?

More error details:

cl -c - nologo - GF -W3 -MD...

'cl' is not recognized as an internal...command
operable programe or batch file
NMAKE: fatal error U10777 'cl' : return code '0x1'
Stop
From stackoverflow
  • The error is saying that cl.exe is not in your path. I don't recall if the Express SKU has a "Visual Studio Command Prompt" or not (check your start menu).

    If not just find cl.exe (let's say it is c:\path\to\vstools\cl.exe) and do something like:

    set PATH=%PATH%;c:\path\to\vstools

    ephemient : Visual Studio (and Express) should come with a batch script "vcvarsall.bat" or similar, which sets all the proper environment variables -- more than just %PATH%, it also sets the proper paths for includes, libraries, and the Windows SDK.
    Sinan Ünür : The correct thing to do here is to install using the separately downloaded ppm package, not compiling this module with a different compiler than the one used to compile AS Perl. Your choice. Further, I had already provided you with this answer a while ago: See http://stackoverflow.com/questions/1016260/still-nmake-problem-with-unicode-map-0-112-after-trying-vcvarsall-bat/1016294#1016294
  • Can't you download the required files on the Mac, put them on a USB stick and then use ppm to install?

    Download on the Mac:

    $ wget http://trouchelle.com/ppm10/Unicode-Map.ppd
    $ wget http://trouchelle.com/ppm10/MSWin32-x86-multi-thread-5.10/Unicode-Map-0.112.zip
    $ mkdir MSWin32-x86-multi-thread-5.10
    $ mv Unicode-Map-0.112.zip MSWin32-x86-multi-thread-5.10
    

    Then move to Windows machine. Open up a command prompt, change to the directory containing the ppd file on the USB drive:

    F:\> ppm install -area site Unicode-Map.ppd
    Unpacking Unicode-Map-0.112...done
    Generating HTML for Unicode-Map-0.112...done
    Updating files in site area...done
    110 files installed
    
    JustADude : I'm still a little new to the terminal, so is this is probably an easy one, but I am getting an error with the third line, i.e. md MSWin32-x86-multi-thread-5.10 md: file = "MSWin32-x86-multi-thread-5.10" open: No such file or director
    Sinan Ünür : Use mkdir in the Mac terminal.
    JustADude : Sorry for the novice question, but from where does the Unicode-Map.ppd come? Also, in which folder are you on the USB drive when you call "ppm...". Finally, is there any way to prevent ppm from trying to call back home to retrieve repository packlist? Thanks again.
    Sinan Ünür : @JustADude Please read my answer above for the answers to your questions.
    JustADude : Sinan Unur - Thank you again for all your help. In the above, from what I can tell (again new to ppm), does not provide a *.ppd file: wget http://trouchelle.com/ppm10/MSWin32-x86-multi-thread-5.10/Unicode-Map-0.112.zip From where does *.ppd file come? When I try the above I receive an error, e.g. "ppm install failed: 404 File ... Unicode-Map.ppd does not exist" Thus, it appears the instructions above do not provide guidance on the creation or download insturctions for obtaining the Unicode-Map.ppd file. Just copies/moves the Unicode-Map-0.112.zip file into the MSWin32-x86 folder.
    Sinan Ünür : @JustADude Are you typing the `wget` line in ppm? Give me break! If you just paste `http://trouchelle.com/ppm10/Unicode-Map.ppd` in your browser's address bar, you will see the file. If you do not know what `wget` is, there is Google. If you want private 'Computing 101' lessons, then I am the wrong person to ask. The `wget`s above are just retrieving the two files `ppm` needs to be able to install this package. Just get the files, save them anywhere you want, move to the PC and then run `ppm` as shown above. All your questions have been answered. Your turn to help yourself. No more fish left.

0 comments:

Post a Comment