User:Bubblesort Triskaidekaphobia
Test edit. Ignore this line.
I build and script and run my university's sim. Recently I compiled a viewer, but I barely know enough to code a hello, world program in C++. Compiling is not simple or easy for a beginner. I took a lot of notes on my experience and I'm pasting them here. I'll work on the document and clean it up until it's readable and then I plan to go and edit the appropriate wiki pages so that they are more helpful. I'm posting and editing this publicly for the world to see because it might help somebody, even if it isn't polished. Bubblesort Triskaidekaphobia 06:41, 6 November 2009 (UTC)
Log of my Compiling Experience:
Here is the link to the instructions I followed: http://wiki.secondlife.com/wiki/Microsoft_Visual_Studio
I'm running Windows Vista Ultimate x86 on a dual proc 5200+ 64 bit AMD, 3 GB of RAM and an NVIDIA GEFORCE 6150SE nForce 430 video card.
Download Express:
The link to download Visual C++ Express was good, but the install failed multiple times when I tried to install SQL server. I decided that SQL is probably not important to the task at hand, so I just ran the install without the SQL and it installed fine.
The service pack links on the wiki page were not good. They downloaded the service packs ok, but when I ran them they could not detect Visual C++. I got the service packs by running windows update about 3 or 4 times, rebooting each time.
Install Microsoft Platform & Direct X SDKs:
These downloaded and installed fine.
Setup the project globals:
The wiki does not specify where the globals are located, so I did my best with what I had. I needed to set up includes and libraries paths to include the following things in the following order:
1. Platform SDK paths $(VCInstallDir)PlatformSDK\include was already listed, but just to make sure I added C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib to the line right after it. NOTE: This was wrong. I explain what happened further down this page but for an explanation of what I should have done go to this page and follow the directions: http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/c5c3afad-f4c6-4d27-b471-0291e099a742/
2. DirectX SDK paths I added C:\Program Files\Microsoft DirectX SDK (August 2008)\Lib\x86
3. Visual C++ Paths I added C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Lib and C:\Program Files\Microsoft Visual Studio 8\VC\lib
Also, C:\cygwin\bin and c:\python26 directories are under executable files and moved to the bottom of the list. Note: The instructions on this page say to use ActivePython, but the rest of the instructions say that regular python will work also. I decided to stick with ActivePython because it will be required when I go to reinstall Blender (I haven't re-installed Blender yet since my last backup and format, but I know in the future I will need it). Also, the web page says to put C:\python25 but I only have C:\python26, so I used that.
From here I went to the Microsoft Windows Builds page on the wiki: http://wiki.secondlife.com/wiki/Microsoft_Windows_Builds
Getting other Development Tools:
Cmake, Cygwin, Python, the Windows Platform SDK and DirectX 9.0 all installed fine. I was careful to follow all instructions, but some instructions were outdated.
Cmake: I am using CMake 2.6.4, but when the page was written the latest version was 2.6.2.
Cygwin: The install went smooth. I made sure to install patchutils, flex and bison during the install.
Python: It says that if I am using a python version newer than 2.5 I might have to change the python.cmake file. This is depreciated. It is no longer necissary to change python.cmake
Windows Platform SDK: Installed smooth.
DirectX 9.0: Installed smooth.
PATH
The instructions say to make sure that Cygwin, CMake and Python are in the windows "PATH". I had no idea what a PATH is, but the friendly nerds in my SL groups helped me find it when I got to the "Building with CMake" section and the build started failing (thanks, AW Groupies!).
PATH is a variable in the system variables section of the Environment Variables window. You can find Environment Variables in Control Panel > System > Advanced System Settings > Advanced Tab > Environment Variables button.
I scrolled down the bottom list of variables until I got to the path variable. I selected path, hit edit and added the following string to the end of what was already in there: ;C:\Python26;C:\cygwin\bin;C:\Program Files\CMake 2.6\bin
This made the full path variable look like this: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\QuickTime\QTSystem\;C:\Python26;C:\cygwin\bin;C:\Program Files\CMake 2.6\bin
Downloading Source Code:
I downloaded the source code and extracted it all on the C drive with a path C:\Source, so each source code file has it's own folder within Source. I have the following paths now:
C:\Source\slviewer-1.23.5 C:\Source\slviewer-art-1.23.5 C:\Source\slviewer-libs-1.23.5
Proprietary Libraries:
Fmod downloaded and installed fine. I put it in the C:\Source directory, so now I have C:\Source\Fmod
Quicktime installed fine. I have it in it's default install directory, at c:\Program Files\QuickTime SDK
I also made a Library file in C:\Source, at C:\Source\Proprietary This is where I made the tree of files I will then move to the c:\Source\slviewer-1.23.5 tree.
The first time I did this I put fmodvx.lib in lib_release and lib_debug rather than lib\release and lib\debug by mistake. I also put QTMLClient.lib in lib_release and lib_debug instead of lib\release and lib\debug by mistake.
I know, I should have read more carefully, but I think the web page documentation would be easier to follow if the parenthetical section had a seperate heading for "Using CMake" and for "not using CMake". To be honest, I don't know why they include options for not using CMake, because if somebody is using this web page they are probably a noob like me and don't know how to build without CMake anyway.
Building with CMake:
At first I made the mistake of going to start > run and typed "command" to get to a command prompt. This was a mistake because "command" can not work with long file names, and I need to work with long file names to navigate to where I need to be. I ran "cmd" instead and then everything started working right.
Then I could not figure out how to get this to work because my PATH variables were not set. "python" returned an invalid command error. It took me all day to try to troubleshoot it on my own but and finally I found a group that helped me out (thanks, AW Groupies!). Now python runs from a command prompt but I get errors when I try to build. The wiki documentation says to use quotes on the build command but when I do that I get the error that what I typed is not recognized as an internal or external command, operable progam or batch file. It tries to run when I do it without the quotes though.
Here is the output I get now:
C:\Source\slviewer-1.23.5\linden\indra>python develop.py -G VC80 Running 'cmake -G "Visual Studio 8 2005" -DSTANDALONE:BOOL=OFF -DUNATTENDED:BOOL =OFF -DROOT_PROJECT_NAME:STRING=SecondLife "" "C:\\Source\\slviewer-1.23.5\\lind en\\indra"' in 'build-VC80' -- Check for working C compiler: cl -- Check for working C compiler: cl -- broken CMake Error at C:/Program Files/CMake 2.6/share/cmake-2.6/Modules/CMakeTestCComp iler.cmake:32 (MESSAGE): The C compiler "cl" is not able to compile a simple test program. It fails with the following output: Change Dir: C:/Source/slviewer-1.23.5/linden/indra/build-VC80/CMakeFiles/CMak eTmp Run Build Command:C:\PROGRA~1\MICROS~4\Common7\IDE\VCExpress.exe CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec Microsoft (R) Visual C++ Express Edition Version 8.0.50727.867. Copyright (C) Microsoft Corp 1984-2005. All rights reserved. 1>------ Build started: Project: cmTryCompileExec, Configuration: Debug Win32 ------ 1>Compiling... 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "CMAKE_INTDIR=\"Debug\"" /D "_MBCS" /FD /RTC1 /MDd /Fo"cmTryCompileExec.dir\Debug\\" /Fd"C:/Source/slviewer-1.23.5/linden/indra/build-VC80/CMakeFiles/CMakeTmp/Debu g/cmTryCompileExec.pdb" /W3 /c /Zi /TC /Zm1000 1> ".\testCCompiler.c" 1>testCCompiler.c 1>Compiling manifest to resources... 1>Linking... 1>LINK : fatal error LNK1104: cannot open file 'user32.lib' 1>Build log was saved at "file://c:\Source\slviewer-1.23.5\linden\indra\build-VC80\CMakeFiles\CMakeTmp\ cmTryCompileExec.dir\Debug\BuildLog.htm" 1>cmTryCompileExec - 1 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:17 (project) -- Configuring incomplete, errors occurred! Cleaning 'build-VC80' Error: the command 'cmake' exited with status 1
So, I see two errors in this output.
1. -- Check for working C compiler: cl -- broken CMake Error at C:/Program Files/CMake 2.6/share/cmake-2.6/Modules/CMakeTestCComp iler.cmake:32 (MESSAGE):
The C compiler "cl" is not able to compile a simple test program.
2. 1>LINK : fatal error LNK1104: cannot open file 'user32.lib'
I checked my CMake to make sure it was configured to find Visual C++. I opened the CMake GUI and went to Tools > Configure. I selected Visual Studio 8 2005 from the drop down and left it set to use default native compilers and clicked Finish and got a window with the following error message: "Error in configuration process, project files may be invalid". I clicked OK to close the error, closed the GUI and re-installed CMake from the file I installed it from earlier. I'm still getting the same problem.
The first error above might give me a clue as to what needs to be done. After the error it says:
It fails with the following output:
Change Dir: C:/Source/slviewer-1.23.5/linden/indra/build-VC80/CMakeFiles/CMak eTmp Run Build Command:C:\PROGRA~1\MICROS~4\Common7\IDE\VCExpress.exe CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec
Now I need to figure out how to run build commands.
My first guess is to cd C:/Source/slviewer-1.23.5/linden/indra/build-VC80/CMakeFiles/CMakeTmp and then type build C:\PROGRA~1\MICROS~4\Common7\IDE\VCExpress.exe and then type CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec
Lets see how this works:
C:\Source\slviewer-1.23.5\linden\indra>cd C:/Source/slviewer-1.23.5/linden/indra /build-VC80/CMakeFiles/CMakeTmp The system cannot find the path specified.
The file can not be found because at the end of the failed build CMake deleted the VC80 file, as can be seen here:
Cleaning 'build-VC80'
So I tried just running the build command from where I am:
C:\Source\slviewer-1.23.5\linden\indra>build C:\PROGRA~1\MICROS~4\Common7\IDE\VCExpress.exe 'build' is not recognized as an internal or external command,operable program or batch file.
That didn't go so well.
Lets just run the executable and see what happens. It will probably just open up Visual C++ for me.
I was right, it just opened up Visual C++. Maybe the build will work when I try to build with Visual C++ running in the background.
It almost worked!
Merging the Source Files
I have python and Visual C++ running in the background ATM, and when I tried to build I got the following output:
C:\Source\slviewer-1.23.5\linden\indra>python develop.py -G VC80 Running 'cmake -G "Visual Studio 8 2005" -DSTANDALONE:BOOL=OFF -DUNATTENDED:BOOL =OFF -DROOT_PROJECT_NAME:STRING=SecondLife "" "C:\\Source\\slviewer-1.23.5\\lind en\\indra"' in 'build-VC80' -- Check for working C compiler: cl -- Check for working C compiler: cl -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: cl -- Check for working CXX compiler: cl -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vor bis-1.1.3-1.2.0-windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata \local\temp\install.cache.bubblesort\ogg-vorbis-1.1.3-1.2.0-windows-20080723.tar .bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\ogg-vor bis-1.1.3-1.2.0-windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml -- Building with FMOD audio support install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_sui te-1.2.12-windows-20080806.tar.bz2 to local file c:\users\bubble~1\appdata\local \temp\install.cache.bubblesort\apr_suite-1.2.12-windows-20080806.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\apr_sui te-1.2.12-windows-20080806.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1 .34.1-windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata\local\tem p\install.cache.bubblesort\boost-1.34.1-windows-20080723.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\boost-1 .34.1-windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1 .95.8-windows-20080715.tar.bz2 to local file c:\users\bubble~1\appdata\local\tem p\install.cache.bubblesort\expat-1.95.8-windows-20080715.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\expat-1 .95.8-windows-20080715.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1. 2.3-windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\ install.cache.bubblesort\zlib-1.2.3-windows-20080723.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\zlib-1. 2.3-windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1. 4.0-windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\ install.cache.bubblesort\ares-1.4.0-windows-20080723.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\ares-1. 4.0-windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7. 18.1-windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp \install.cache.bubblesort\curl-7.18.1-windows-20080723.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\curl-7. 18.1-windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL -0.9.8j-windows-20090129.tar.bz2 to local file c:\users\bubble~1\appdata\local\t emp\install.cache.bubblesort\openSSL-0.9.8j-windows-20090129.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\openSSL -0.9.8j-windows-20090129.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc- epi-0.51-windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata\local\ temp\install.cache.bubblesort\xmlrpc-epi-0.51-windows-20080723.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\xmlrpc- epi-0.51-windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib -6b-windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\ install.cache.bubblesort\jpeglib-6b-windows-20080723.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\jpeglib -6b-windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng- 1.2.35-windows-20090306.tar.bz2 to local file c:\users\bubble~1\appdata\local\te mp\install.cache.bubblesort\libpng-1.2.35-windows-20090306.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\libpng- 1.2.35-windows-20090306.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpe g-1.3-windows-20090407.tar.bz2 to local file c:\users\bubble~1\appdata\local\tem p\install.cache.bubblesort\openjpeg-1.3-windows-20090407.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\openjpe g-1.3-windows-20090407.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-wind ows-20080613.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\install. cache.bubblesort\GL-windows-20080613.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\GL-wind ows-20080613.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_lin ear-windows-20080613.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\ install.cache.bubblesort\glh_linear-windows-20080613.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\glh_lin ear-windows-20080613.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/SDL-1.2 .5-windows-20080613.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\i nstall.cache.bubblesort\SDL-1.2.5-windows-20080613.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\SDL-1.2 .5-windows-20080613.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-7. 0-windows-20080613.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\in stall.cache.bubblesort\mesa-7.0-windows-20080613.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\mesa-7. 0-windows-20080613.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llmozli b-windows-20090306.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\in stall.cache.bubblesort\llmozlib-windows-20090306.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\llmozli b-windows-20090306.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-200 8-11-30-common-20081208.tar.bz2 to local file c:\users\bubble~1\appdata\local\te mp\install.cache.bubblesort\tut-2008-11-30-common-20081208.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\tut-200 8-11-30-common-20081208.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetyp e-2.1.5-windows-20080822.tar.bz2 to local file c:\users\bubble~1\appdata\local\t emp\install.cache.bubblesort\freetype-2.1.5-windows-20080822.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\freetyp e-2.1.5-windows-20080822.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gtk-atk -pango-glib-windows-20080613.tar.bz2 to local file c:\users\bubble~1\appdata\loc al\temp\install.cache.bubblesort\gtk-atk-pango-glib-windows-20080613.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\gtk-atk -pango-glib-windows-20080613.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml -- Building with FMOD audio support install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev -windows-20080723.tar.bz2 to local file c:\users\bubble~1\appdata\local\temp\ins tall.cache.bubblesort\ndofdev-windows-20080723.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\ndofdev -windows-20080723.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset Downloading http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2 .1.3010.6270-windows-20090309.tar.bz2 to local file c:\users\bubble~1\appdata\lo cal\temp\install.cache.bubblesort\vivox-2.1.3010.6270-windows-20090309.tar.bz2 Extracting c:\users\bubble~1\appdata\local\temp\install.cache.bubblesort\vivox-2 .1.3010.6270-windows-20090309.tar.bz2 to C:\Source\slviewer-1.23.5\linden Writing state to C:\Source\slviewer-1.23.5\linden\installed.xml install.py:67: DeprecationWarning: the md5 module is deprecated; use hashlib ins tead import md5 install.py:78: DeprecationWarning: the sets module is deprecated from sets import Set as set, ImmutableSet as frozenset -- Version of viewer is 1.23.5.136262 -- Configuring done CMake Error in newview/CMakeLists.txt: Cannot find source file "arrow.cur". Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx -- Build files have been written to: C:/Source/slviewer-1.23.5/linden/indra/buil d-VC80 Cleaning 'build-VC80' Error: the command 'cmake' exited with status 1 C:\Source\slviewer-1.23.5\linden\indra>
I'm not sure what this all means. I'm going to guess the depreciation warnings are not important, so I'll focus on this part:
CMake Error in newview/CMakeLists.txt: Cannot find source file "arrow.cur". Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
Earlier I noticed in the wiki page that I need to edit my python.cmake file, but I have not done that yet. Lets go to the CMake discussion page and see what needs to be done:
http://wiki.secondlife.com/wiki/Talk:CMake#CMake_and_Python_2.6
The page says to add the line [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.6\\InstallPath] to the list of paths near the top of the script. It is already added, though. The wiki should be changed to remove this instruction, from the main page, since the script is now fixed and does not need to be altered. The talk page even reflects this change:
"...saw your Python 2.6 tweak, and nudged the dev team to pick up the change, so that it should work in the future without needing that edit (it'll be in the next trunk rev, and will show up in roughly the 1.23 timeframe)."-- Rob Linden 16:23, 29 October 2008 (UTC)
This still leaves us with a failed build... so where is arrow.cur hiding?
I ran a search on my computer for "arrow" and found an arrow.bmp in C:\Source\slviewer-1.23.5\linden\indra\newview, and I have a couple of arrow.gif files in \indra\newview\app_settings\mozilla_debug and \indra\newview\app_settings\mozilla
I also noticed I have an empty file (not folder, but a file that is 0kb in size) called build in my indra folder. I don't think that was there before.
Maybe my wi-fil failed for a minute during the build. The build was downloading a lot of files. Lets try it again.
No luck. I got the exact same error, but it came up faster this time because it did not download anything.
I went back and verified that I had moved the Fmod and Quicktime files correctly. They are all OK.
I ran a google search for "Cannot find source file "arrow.cur" and came up with a message on the sldev list at https://lists.secondlife.com/pipermail/sldev/2009-March/013024.html
It says I need to go to doc/asset_urls.txt and add urls to the artwork and lib files. That should have been in the wiki page documentation.
Hmmm... there is no asset_urls.txt file in linden/doc. I searched my drive for asset_urls.txt and came up with nothing.
The most recent time this issue was brought up on sldev eas April 20, 2009, which is about 6 months ago. Back then this was referred to as an experimental thing. One LL employee dev named Brad King wrote:
> The artwork-common change was made after the easybuild branch spawned > from trunk and it has not been merged. Automatic artwork and libs > downloading is a work-in-progress.
That gives some background on the issue, but not a solution.
I think I have to merge the artwork and library downloads with the source code download. There has to be an automatic way to do this. Manual merging would be a PITA.
I ran it again and noticed the error is in newview\CMakeLists.txt
Checking CMakeLists.txt now...
In this file, near the middle I found this section of interesting text:
# Add resource files to the project. # viewerRes.rc is the only buildable file, but # the rest are all dependencies of it. set(viewer_RESOURCE_FILES res/arrow.cur res/arrowcop.cur res/arrowcopmulti.cur
A quick text search in notepad shows that this is the only place arrow.cur appears in the document. I think I need to set viewer_RESOURCE_FILES to something.
OK, I fixed this by asking LordGregGreg Back and he told me to merge the artwork and library files together. I did this by dragging the contents of the linden folder in the art and the libraries folders to the linden folder of the source file with the right mouse button and selecting copy. When it asked if I wanted to merge I said yes and when it asked if I want to replace files I just always said yes, replace the file.
Nowhere on the Wiki does it tell you to merge the files. The wiki just says extract them all to the same directory. That needs to be fixed.
Trying it again...
It worked! I mean, it gave an error, but LordGregGreg said that is normal because I'm using VS 2005.
The error was:
Editing solution: build-VC80\SecondLife.sln Looking for existing VisualStudio instance... Didn't find open solution, starting new background VisualStudio instance... Reading .sln file version... Using version: VC80... Value cannot be null. Parameter name: type Quitting do to error opening: C:\Source\slviewer-1.23.5\linden\indra\build-VC80\ SecondLife.sln
Compiling
I typed python develop.py build and it can't find VC++. Here is the output:
C:\Source\slviewer-1.23.5\linden\indra>python develop.py build Reading VS environment from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8 .0\Setup\VS\EnvironmentDirectory SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS Didn't find Visual Studio 8 2005 Reading VS environment from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9 .0\Setup\VS\EnvironmentDirectory SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VS Didn't find Visual Studio 9 2008 Reading VS environment from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7 .1\Setup\VS\EnvironmentDirectory SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS Didn't find Visual Studio 7 .NET 2003 Cannot find a Visual Studio installation! Traceback (most recent call last): File "develop.py", line 751, in <module> main(sys.argv[1:]) File "develop.py", line 730, in main for d in setup.build_dirs(): File "develop.py", line 498, in build_dirs return ['build-' + self.generator] File "develop.py", line 486, in _get_generator eys.exit(1) NameError: global name 'eys' is not defined
So I closed VC++ and restarted it by running it from the command prompt and got the exact same error.
The other option is to compile it from VC++ directly, so I'm doing that.
I did a file > open > project/solution and opened linden/indra/build-VC80/viewer.vcproj
From the drop down at the top of VC++ I selected RelWithDebInfo, made sure ALL_BUILD is in bold text on the left (showing it's my startup project), I right clicked ALL_BUILD, went to properties, Configuration Properties, Debugging and found the Working Directory and navigated to linden\indra\newview and clicked Apply and OK.
I went to build > build solution.
As it builds I notice a lot of fatal errors scroll up.
It ends with this:
========== Build: 5 succeeded, 19 failed, 1 up-to-date, 2 skipped ==========
Not sure if that is good or bad.
I went to Debug > Start Debugging. It said this list of projects are out of date and asked if I want to build them. I clicked Yes.
llmessage - RelWithDebInfo Win32 llaudio - RelWithDebInfo Win32 llxml - RelWithDebInfo Win32 llwindow - RelWithDebInfo Win32 llvfs - RelWithDebInfo Win32 llui - RelWithDebInfo Win32 llrender - RelWithDebInfo Win32 llprimitive - RelWithDebInfo Win32 llcharacter - RelWithDebInfo Win32 llmedia - RelWithDebInfo Win32 llmath - RelWithDebInfo Win32 llinventory - RelWithDebInfo Win32 llimagej2coj - RelWithDebInfo Win32 llimage - RelWithDebInfo Win32 llcrashlogger - RelWithDebInfo Win32 llcommon - RelWithDebInfo Win32 windows-crash-logger - RelWithDebInfo Win32 secondlife-bin - RelWithDebInfo Win32 windows-updater - RelWithDebInfo Win32
It gave me build errors and a window asking if I want to continue and run the latest good build... I said yes. Then I need to specify the name of the executable file to be used for the debug session. In the wiki it says that it can be found in linden\indra\build-VC80\newview\relwithdebinfo\secondlife-bin.exe but the only executable there is slvoice.exe
fmod.dll wasn't in the relwithdebinfo file so I copied it there from C:\Source\Fmod\fmodapi375win\apillkdu.dll was not there so I copied it from C:\Program Files\SecondLife
Ok, compiling again...
Build > Build Solution, it runs, giving a bunch of fatal errors, all saying it can not open winsock2.h or windows.h
it ended with this:
========== Build: 0 succeeded, 19 failed, 6 up-to-date, 2 skipped ==========
I'm going to try to debug anyway
Debug > start debugging
Same list of out of date projects. I told them to build them now...
Again, I got the error window. The exact error message reads "There were build errors. Would you like to continue and run the last successful build?" I click yes and... new dialog: "Please specify the name of the executable file to be used for the debug session." From the dropdown I hit browse and tried to open secondlife-bin.exe but it is not in linden\indra\build-VC80\newview\relwithdebinfo
Something is wrong with the build.
I found C:\Source\slviewer-1.23.5\linden\indra\build-VC80\newview\debug\windbgdlg.exe
I'm going to run that and see what it does.
It gave me an error window with the title "windbgdlg.exe - Unable To Locate Component" with the text "This application has failed to start because MSVCR80D.dll was not found. Re-intalling the application may fix this problem." I clicked OK.
I closed VC++ and reopened it.
Restarted from scratch, opened the file, checked everything, it looks ready for build so I built and got Build: 0 succeeded again, so I did a Build > Rebuild Solution and am still getting winsock2.h not found and windows.h not found fatal errors.
Now I got this:
========== Rebuild All: 6 succeeded, 19 failed, 2 skipped ==========
That's one more success than I've had before. Maybe it built the .exe
Debug > Start Debugging... got a list of out of date projects, I click yes to build them... the output window says 0 succeeded, 19 failed, 6 up to date and 1 skipped. The dialog asks if I want to run the latest build again, I say yes and... I get a dialog:
The title of the dialog is "windbgdlg.exe - Unable to locate Component" and it says "This application has failed to start because MSVCR80D.dll was not found. Reinstalling the application may fix this problem." I click ok.
It's the same dialog I got before when I tried to run windbgdlg.exe instead of secondlife-bin.exe
secondlife-bin.exe is not in the relwithdebinfo folder.
I check the directions for setting up VC++ again...
This time I look at the screen shots for VS2009 and notice I don't have my dependencies set up right: http://wiki.secondlife.com/wiki/Compiling_the_Viewer_(MSVS2008)
I removed C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Lib and Visual Studio8\VC\Lib from library and includes files.
Still getting errors on the build
So I look up windows.h and winsock2.h
windows.h indicates a problem with my incluede and so does winsock2.h
I clean the build and start over
After build I get ========== Build: 6 succeeded, 19 failed, 0 up-to-date, 2 skipped ==========
on debug I get more build errors... same problems... and it is still trying to run windbgdlg.exe for some reason.
I re-download the Microsoft Platform SDK from http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en#filelist because I found the link on a forum off a link in the common problems page on the wiki.
Here is a web page on how to include the Microsoft Platform SDK in VC++ 2005: http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/c5c3afad-f4c6-4d27-b471-0291e099a742/
I added the paths in the web page, closed VC++, updated the corewin_express.vsprops file. When I updated the file it would not save at first, so I had to go into the security settings of the file and give myself full control on the file, since I did not have write perms at first.
Restared VC++, opened the viewer project and cleaned the build, got this:
========== Clean: 25 succeeded, 0 failed, 2 skipped ==========
Building...
NO ERRORS YET! Still building... building... this is gonna take a while. This was faster when it failed.
Still building... damnit, it's like waiting for porn on a 28.8 connection.
WOOT!
========== Build: 25 succeeded, 0 failed, 0 up-to-date, 2 skipped ==========
I debug, and...
IT RUNS! IT'S ALIVE!!!!
Making the Program Run Outside of VC++
Ok, I made a folder in C:\\Program Files\My SecondLife and copied the right files into it, as described here: http://wiki.secondlife.com/wiki/Talk:Microsoft_Windows_Builds#Running_viewer_outside_of_MS_VC
Copy the contents of your build-vc90/release/* (or debug, or relwithdeb) folder into that one. The only exceptions are the secondlife-bin.* files aside of the .exe, you don't necessarily need those. Also copy the following files from indra/newview/ there: app_settings character fonts skins all .txt files that include 'feature'
llkdu.dll needs to be grabbed from a plain LL viewer. If you use OpenAL, you might have to rename openal.dll to openal32.dll, and you might have to manually copy fmod.dll from your /libraries/ folder into the new one.It opens up and gives me a warning window that says:
"Your system contains a graphics card that is unknown to us at this time. This is often the case with new hardware we haven't had a chance to test. SecondLife will most likely run properly, but you may need to adjust your graphics settings to something more appropriate. (Edit menu> Preferences > Graphics)" with a check box for "Don't show me this again" and a close button.
I hit close and logged in.
I guess we now know that the NVIDIA GEFORCE 6150SE nForce 430 video card works with SL.
Where I downloaded from:
Visual C++ 2005 Express with SP2: http://download.microsoft.com/download/8/3/a/83aad8f9-38ba-4503-b3cd-ba28c360c27b/ENU/vcsetup.exe
Service Packs for Visual C++ 2005 Express: I ran Windows Update.
Windows SDK for Windows Server 2008 http://www.microsoft.com/downloads/details.aspx?FamilyID=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
DirectX 9.0 SDK http://www.microsoft.com/downloads/details.aspx?FamilyID=ea4894b5-e98d-44f6-842d-e32147237638&DisplayLang=en
CMake 2.6 patch 4 http://www.cmake.org/files/v2.6/cmake-2.6.4-win32-x86.exe
Cygwin 1.5.25-15 (at least that is what the web site says is the latest version, but I can't find the version info on the program anywhere) http://www.cygwin.com/setup.exe
Python 2.6.4 http://www.python.org/ftp/python/2.6.4/python-2.6.4.msi
Windows Platform SDK http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
DirectX 9.0 http://www.microsoft.com/downloads/details.aspx?FamilyID=ea4894b5-e98d-44f6-842d-e32147237638&DisplayLang=en
Source Code: I decided to go with the regular Linden Labs Release 1.23.5 source Code for this, which I got off of the Source
Downloads page at http://wiki.secondlife.com/wiki/Source_downloads
Fmod: http://www.fmod.org/index.php/download
Personal note: I hate apple. They require registration to get their stupid API.