Troubleshooting Build Problems

From STRIDE Wiki
Revision as of 07:16, 23 October 2009 by Ivailop (talk | contribs)
Jump to navigation Jump to search

This page describes several common problems encountered when building a STRIDE Testapp using the Windows sandbox and suggested solutions.

Make Error 1

Symptom

When attempting to build the Sandbox testapp, you encounter an error indicating that:

‘cl’ is not recognized as an internal or external command,
operable program or batch file.

For example:

C:\STRIDE\SDK\Windows\src>..\bin\make.exe testapp
cl -c -nologo -W4 -wd4996 -wd4702 -D_UNICODE -DUNICODE -DWIN32 -D_CONSOLE -DUNDER_NT -I”.” -I”../../Runtime” -I”../../SLAP” -I”../../GRS” -I”../o
ut/src” -I”../sample_src” -GS -Zi -DNDEBUG -MD -O2 -D_LIB -DSTRIDE_STATIC -Fd”../out/desktop-Windows_NT-obj//cl.pdb” -Fo”../out/desktop-Windows_NT-o
bj/srapi.o” ”../../Runtime/srapi.c” 
‘cl’ is not recognized as an internal or external command,
operable program or batch file.
make: *** [../out/desktop-Windows_NT-obj/srapi.o] Error 1
Cause

The compiler, cl.exe can't be found on your PATH.

Soultion

Be sure that you are building from a Visual Studio command prompt. This ensures that the compiler and linker are on your PATH.

To open a Visual Studio Command prompt:

  • Click the Start button, point to All Programs, Microsoft Visual Studio 200X, Visual Studio Tools, and then click Visual Studio 200X Command Prompt.

Make Error 2

Symptom

When attempting to build the Sandbox testapp, the following error is observed.


C:\stride\SDK\Windows\src>..\bin\make.exe TestApp
Syntax error: “(” unexpected
Syntax error: “(” unexpected
Syntax error: end of file unexpected (expecting “then”)
make: *** [../out] Error 2

Cause

This error occurs because gmake on Windows will search for a bash (or csh) anywhere in your PATH when executing shell commands and only default to cmd.exe (DOS shell) when no bash is found. The sandbox Makefile uses DOS shell (cmd) syntax, so when a bash is found on your PATH, this results in gmake submitting a command with DOS syntax to a bash shell which results in the error.

Most commonly, this problem is caused by an installation of Cygwin.

Solution
  • Remove any directories from your PATH that contain a bash shell executable or otherwise prevent bash from being found. (e.g. rename its parent directory).