-
Notifications
You must be signed in to change notification settings - Fork 15
TroubleShootingTips
# 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.