Compiling nebula is often non trivial.

This is the offical compilation website, that will fix most problems.

Nebula Twiki

Their compilation instructions

My Instructions

1) download the code

2) put it in your root directory

3) add the env variables in nebula/INSTALL to your .bashrc

4) modfy the one variable (nebulahome) to the correct location

5) cd nebula/code/src

6) tclsh updsrc.tcl

7) make

8) go

It should load, if you have a problem check the nebula compilation instructions, and attempt to do the things they say.

If you have a problem, check my list below and if not then

email me!

If you have a problem and fix it email me the fix and I will add it to this website for others.s

Most problems come from tcl/tk, and their library files.

Make sure you have tcl8.4.4 compiled and set up right.

Windows compilation problems.

complains about multiple conversions for operator [] - visual studio is stupid...if you are using a vector class or something with operator [] (nArray) and you pass it something other then an int it will really complain. Just typecast in interior -> array[(int) i] and it should be happy.

cannot find d3d8.h - install the DXSDK - from microsoft.com and make sure to include c:\DXSDK\include,lib into options-directories-include/lib

Windows Execution Problems

It complains about lxinputserver

lxinputserver is the server for linux, that is set in go.tcl

edit nebula/data/scripts/go.tcl

replace

new nlxinputserver input

with

new ndi8server input

You can also replace nopenglserver with nd3d8server to use directx instead of opengl.

In future versions I will fix this problem in script.

 

make sure tcl84.dll, tclpip.dll, tk84.dll and devil.dll, ill.dll, ilu.dll, ilut.dll are all under nebula/bin/win & nebula/bin/win32

if one of these is missing it will be unable to create the opengl/d3d8 server, complaining that it cannot load the module

tclsh84 must be in your path, in visual c++ make sure tcl/bin is in under options-directories-executables.

 

It outputs 10000 loading module lines and then crashes - In a .pak file a class ordered before a class that it inherits from, so if you have setmodules { nthing nroot } It will cause an infinite recursion - Took my like 6 hours of parsing ridiculously obscure functions in the debugger to identify.

Windows CANNOT handle cyclic dependencies when creating dlls.

If dll A uses something from B, and B uses something from A, you are stuck - Merge them into a single dll. Note any usage is enough to break visual c++, such as a single function call.

Linux Compilation Problems

Complains about tclsh84, make sure it is inside your path.

Make sure to properly copy the info in nebula/INSTALL into your .bashrc

Complains about lammpio

1) get the latest version of the code from my website ( fixes this problem ).

2) OR go into nebula/code/defines.mak and find the 3 lines after the MPI comment, comment them out / erase them.

Linux Execution Problems.

Runs REALLY REALLY slow.

Your computer is not using its video card, it is probably using Mesa. Go to your cards website and get linux drivers. Follow the instructions precisely (they aren't hard, but dont miss any), and meticulously and it should install smoothly.

Complains about linpng, newer versions of linuxd come newer versions then it expects.
cd nebula/bin/linuxd
ln -s /usr/lib/libpng.s0.3 libpng.so.2

use locate to find the actual libpng you have, and be sure to link it under the filename it expects