Monday, June 14, 2010

Compile Live555 using VS2008

Compile Live555 using VS2005
Live555 is a media library to support local and streaming play media files. Its source code is easy to understand and extensible so it's suitable for doing some quick experimentals or demos. It's a cross-platform solution which supports Windows and Linux. But the original source package cannot generate the correct make file for VS2005. We need do some modification listed step by step here.

1. Modify the line "TOOLS32 = ..." in win32config to point to the VS2005 installed directory in your host machine. For example, "TOOLS32 = C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC" is corresponding to my desktop's configuration. Note that I have Windows 7 64 Bit.

2. Modify the line "LINK_OPTS_0 = $(linkdebug) msvicrt.lib" in win32config to "LINK_OPTS_0 = $(linkdebug) msvcrt.lib", otherwise VS2008 will report msvicrt.lib cannot be found.

3. Run genWindowsMakefiles.cmd to generate *.mak for VS2005/VS2008

4. Modify liveMedia/RTSPOverHTTPServer.cpp to add the following code:
#if defined(__WIN32__) || defined(_WIN32)
#define snprintf _snprintf

Not require with live.2010.06.11

5. Modify groupsock/Makefile.head. Change from "INCLUDES = -Iinclude -I../UsageEnvironment/include" to "INCLUDES = -Iinclude -I../UsageEnvironment/include -DNO_STRSTREAM".

6. Save the following commands into a bat file in the src directory.
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
cd liveMedia
nmake /B -f liveMedia.mak
cd ../groupsock
nmake /B -f groupsock.mak
cd ../UsageEnvironment
nmake /B -f UsageEnvironment.mak
cd ../BasicUsageEnvironment
nmake /B -f BasicUsageEnvironment.mak
cd ../testProgs
nmake /B -f testProgs.mak
cd ../mediaServer
nmake /B -f mediaServer.mak

7. run the saved bat file. Done :)

Now it's turn to debug using VS2008, because we don't have a solution file for VS2008, so we need to find another method to debug run.
1. you need to modify win32config to enable debug mode. Just comment the line "NODEBUG=1".
2. File->Open->Project/Solution to load a exe file to be debugged.
3. Debug->Step Over, it will stop at the main function entry point.

No comments: