Building 3rd Party Libraries - cl.exe and link.exe errors

I'm having difficulty trying to build a dll from source provided by a 3rd party. The source is actually free and can be found at http://librsync.sourceforge.net/

I am trying to build the librsync library in Visual Studio 2005. If you download the above source, after extract the code, you will see a folder labeled PCBuild. I migrated the VS6 project to VS2005 and get the two common errors... Error spawning 'cl.exe' and Error spawning 'link.exe'.

If I add the appropriate folders in the executable paths, it then gives me the Error result -1073741515 returned from 'C:\Program Files\Microsoft Visual Studio 8\VC\bin\cl.exe'. error.

Can anyone offer any assistance with this Any idea what I am doing wrong Thanks for your assistance!




Answer this question

Building 3rd Party Libraries - cl.exe and link.exe errors

  • AdrianGodong

    Copying the cmd.exe worked to be able to compile it in release mode. I still get those errors as described above when compiling in debug mode. I'll try to muttle through those now. I still think that my roaming profile is the issue with my dev environment.

  • sweet_salt

    Thank you for responding to my post. I tried steps in both posts and nothing has worked yet. I certainly could have a corrupt install, but I'm not sure. I have a roaming profile on my domain, and I develop from multiple computers at any given time. Although I haven't tried building a project using the cl.exe or link.exe command lines, the executables do at least run when I type cl.exe / or link.exe / , but I'm sure that doesn't help you.

    I will try to re-install my VS2005 and see if that helps first and get back to you. Anyway you can make the .dll available that was compiled so I can see if it will work in our project Although I do want to get this problem resolved on my end, that will help me determine if this project is worth continuing. Thanks for all of your help everyone. More soon...



  • Tarey Wolf

    Thank you nobugz, I am now that much closer. The project starts compiling, but now gives me an error about spawning the cmd.exe file. Here is the build output...

    ------ Build started: Project: rdiff, Configuration: Release Win32 ------
    Compiling...
    rollsum.c
    readsums.c
    rdiff.c
    prototab.c
    poptparse.c
    popthelp.c
    poptconfig.c
    popt.c
    patch.c
    netint.c
    msg.c
    mksum.c
    mdfour.c
    job.c
    isprefix.c
    hex.c
    findme.c
    fileutil.c
    emit.c
    delta.c
    Generating Code...
    Compiling...
    command.c
    checksum.c
    buf.c
    base64.c
    Generating Code...
    Compiling...
    whole.c
    version.c
    util.c
    tube.c
    trace.c
    sumset.c
    stream.c
    stats.c
    search.c
    scoop.c
    Generating Code...
    Linking...
    Embedding manifest...
    Project : error PRJ0003 : Error spawning 'cmd.exe'.
    Build log was saved at "file://c:\librsync\librsync-0.9.7\PCbuild\Release\BuildLog.htm"
    rdiff - 1 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



  • LeeC22

    Actually, I am using the IDE to try to build it, not the command line. I'm not very good with the command line builds.

  • fwojdag

    This is what I have...

    Executables...
    C:\Program Files\Microsoft Platform SDK\bin
    C:\Program Files\Microsoft Platform SDK\lib
    C:\Program Files\Microsoft Platform SDK\bin\winnt
    $(VCInstallDir)PlatformSDK\bin
    $(VCInstallDir)bin

    Include Files...
    C:\Program Files\Microsoft Platform SDK\include
    C:\Program Files\Microsoft Visual Studio 8\VC\include
    $(VCInstallDir)PlatformSDK\include
    $(VCInstallDir)atlmfc\include
    $(FrameworkSDKDir)include

    Library Files...
    C:\Program Files\Microsoft Platform SDK\lib
    $(VCInstallDir)PlatformSDK\lib
    C:\Program Files\Microsoft Visual Studio 8\VC\lib
    $(VCInstallDir)lib
    $(VCInstallDir)atlmfc\lib
    $(VCInstallDir)atlmfc\lib\i386
    $(FrameworkSDKDir)lib
    $(VSInstallDir)
    $(VSInstallDir)lib



  • Flap

    Are you sure you can build any C++ project Can you try to run cl.exe or link.exe from the command line (Start Menu->Program->VS->VS Tools->VS Command Prompt). What does depends cl.exe say in the lower pane

    The error code seems to suggest that something with the manifest is wrong. Sounds like your installation is corrupt.

    -hg


  • Brennon

    You should be able to avoid the compiler warnings and errors with the project changes I've mentioned in my first post. Specifically, you'll avoid the C2090 error with /D HAVE_STRERROR...


  • ar_pad

    I'm not sure these are installation problems. The error code suggests your PATH environment variable is too long. If you're trying to build this project using the makefile, try building in the IDE instead...


  • CodeButcher

    Woof, you're PC is pretty messed up. You have a problem with the PATH environment variable. A Q&D fix is to copy c:\windows\system32\cmd.exe to C:\Program Files\Microsoft Visual Studio 8\VC\bin


  • KimberlyL

    btw, that error is in release mode. And, yes you are right, there are over 50 warnings that don't look too friendly. The error I get in debug mode is...

    ------ Build started: Project: rdiff, Configuration: Debug Win32 ------
    Compiling...
    popt.c
    c:\librsync\librsync-0.9.7\popt\popt.c(10) : warning C4028: formal parameter 1 different from declaration
    c:\librsync\librsync-0.9.7\popt\popt.c(11) : warning C4996: '__sys_nerr' was declared deprecated
    c:\program files\microsoft visual studio 8\vc\include\stdlib.h(284) : see declaration of '__sys_nerr'
    Message: 'This function or variable may be unsafe. Consider using strerror instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    c:\librsync\librsync-0.9.7\popt\popt.c(12) : error C2090: function returns array
    c:\librsync\librsync-0.9.7\popt\popt.c(15) : warning C4047: 'return' : 'char *' differs in levels of indirection from 'char **'
    c:\librsync\librsync-0.9.7\popt\popt.c(161) : warning C4090: 'function' : different 'const' qualifiers
    c:\librsync\librsync-0.9.7\popt\popt.c(242) : warning C4090: 'function' : different 'const' qualifiers
    c:\librsync\librsync-0.9.7\popt\popt.c(247) : warning C4090: 'function' : different 'const' qualifiers
    c:\librsync\librsync-0.9.7\popt\popt.c(270) : warning C4013: 'execvp' undefined; assuming extern returning int
    c:\librsync\librsync-0.9.7\popt\popt.c(590) : warning C4090: 'function' : different 'const' qualifiers
    c:\librsync\librsync-0.9.7\popt\popt.c(644) : warning C4090: 'function' : different 'const' qualifiers
    c:\librsync\librsync-0.9.7\popt\popt.c(653) : warning C4090: 'function' : different 'const' qualifiers
    c:\librsync\librsync-0.9.7\popt\popt.c(654) : warning C4090: 'function' : different 'const' qualifiers
    c:\librsync\librsync-0.9.7\popt\popt.c(720) : warning C4047: 'function' : 'int *(__cdecl *)()' differs in levels of indirection from 'int'
    c:\librsync\librsync-0.9.7\popt\popt.c(720) : warning C4024: 'strerror' : different types for formal and actual parameter 1
    Build log was saved at "file://c:\librsync\librsync-0.9.7\PCbuild\Debug\BuildLog.htm"
    rdiff - 1 error(s), 13 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



  • Cadohacan

    I had just a few problems when I loaded the .dsw file in the VS2005 IDE. It automatically converted the VS6 project into a VS2005 project. I got a clean compile after I:
    - changed warning level to 0 (there's a lot of them!)
    - added #define inline __inline to mdfour.c and delta.c
    - added HAVE_STRERROR to the preprocessor definitions
    - added rollsum.c to the project

    Hope this works for you, several of the warnings look pretty creepy and I don't think they used VS6 to make this work...


  • venp

    Try adding this to Executable files:
    $(VSInstallDir)Common7\Tools\bin
    $(VSInstallDir)Common7\Tools
    $(VSInstallDir)Common7\ide
    $(VSInstallDir)\SDK\v2.0\bin
    $PATH

    Add this to Include files:
    $(VCInstallDir)include

    Are you using VC Express



  • Tonton888

    Then you're VS2005 configuration is messed up. Post what you see when you click, Tools + Options, Projects and Solutions, VC++ Directories, Show directories for = "Executable files".


  • Building 3rd Party Libraries - cl.exe and link.exe errors