Skip to content

TroubleShootingTips

Neo-X edited this page Sep 18, 2015 · 1 revision

# Troubleshooting tips when using SteerSuite

## Problems Running SteerSim

My AI module does not get loaded by the testCasePlayer even though I specified it in the command line:  Did you use the -module option? You probably meant to use the -ai option. These two options are almost equivalent; the difference is that -ai also tells the testCasePlayer module to use your AI. I generated a config file, but changing the options seems to have no effect:  There are two things to check. (1) steersim will not automatically find and load your config file. Are you using the -config option, to load the config file? (2) Also, if you are specifying a command-line option, remember that it overrides the same config-file option.

## Problems Compiling with SteerLib

I get too many "not found" or "unresolved symbol" errors when compiling my module:  Did you remember to include SteerLib.h ? SteerLib.h simply includes all the other .h files in SteerLib, so you will also need to make sure that you give your compiler the proper include path that points to your SteerLib/include directory.

I get too many linker errors when compiling my module:  Did you specifically tell your compiler to link to SteerLib? If you did, then are you sure the compiler knows where to find that library? I get an openGL linker error when compiling my module:  If you used any of the inline functions in DrawLib, you will also need to link to OpenGL when you compile your module. I get a linker error about missing "main" when compiling my module:  Make sure you are compiling your module as a dynamic-link library, and not as a stand-alone executable.

SteerSim does not load my module properly. 
Did you compile as a dynamic library? Did you implement createModule and destroyModule ? Did you declare those functions with extern "C" , so that they are visible through a C-style dll interface? In Visual Studio, you also need to specify __declspec(dllexport) for those two functions, so that the compiler will know to make those functions available through the dll interface. It seems like I have to compile twice in order for my code changes to take effect in Visual Studio:  This probably means you added your project directly to SteerSuite Visual Studio solution, right? That is fine, but you will need to make sure your specify that your project is dependent on SteerLib. This option can be set by modifying Solution Properties → Project Dependencies options for the Visual Studio solution file. With the proper dependencies, Visual Studio will compile and link SteerLib first, before compiling and linking your module. My module seems to work, but my module does not draw anything:  Just in case, check the most obvious thing: is the draw() function empty, or does it return before drawing anything? If you have copy-pasted another module from SteerSuite to make your module, you should make sure that ENABLE_GUI is defined in the project properties. For Visual Studio users, you may notice that other SteerSuite components use a macro called $(GUI_DEFINE) . This macro is defined in the SteerSuiteBuildOptions.vsprops xml file, where you can define global options for SteerSuite in Visual Studio. You will need to tell your project to use this file by modifying the Project Properties → General → Inherited Project Property Sheets option. Editing the SteerSuiteBuildOptions.vsprops file seems to have no effect:  Restart Visual Studio for those changes to take effect.

Clone this wiki locally