Troubleshooting Build Problems: Difference between revisions
Line 33: | Line 33: | ||
== Make Error 2 == | == Make Error 2 == | ||
;Symptom | ;Symptom | ||
On Windows, when attempting to build the testapp, the following | On Windows, when attempting to build the testapp, either of the following errors is observed: | ||
<pre> | <pre> | ||
Line 42: | Line 42: | ||
Syntax error: end of file unexpected (expecting “then”) | Syntax error: end of file unexpected (expecting “then”) | ||
make: *** [../out] Error 2 | make: *** [../out] Error 2 | ||
</pre> | |||
- or - | |||
<pre> | |||
C:\stride\SDK\Windows\src>..\bin\make testapp | |||
/bin/sh: -c: line 0: syntax error near unexpected token `(' | |||
/bin/sh: -c: line 0: `IF EXIST ../out. (IF NOT EXIST ../out/src mkdir "../out/src") ELSE mkdir "../out" && mkdir "../out/src".' | |||
/bin/sh: -c: line 0: syntax error near unexpected token `(' | |||
/bin/sh: -c: line 0: `IF EXIST ../out. (IF NOT EXIST ../out/src mkdir "../out/src") ELSE mkdir "../out" && mkdir "../out/src".' | |||
/bin/sh: -c: line 1: syntax error: unexpected end of file | |||
make: *** [cleanapp] Error 258 | |||
</pre> | </pre> | ||
Line 48: | Line 57: | ||
This error occurs because gmake on Windows will search for a <tt>bash</tt> (or <tt>csh</tt>) anywhere in your PATH when executing shell commands and only default to <tt>cmd.exe</tt> (DOS shell) when no <tt>bash</tt> is found. The sandbox Makefile uses DOS shell (cmd) syntax, so when a <tt>bash</tt> is found on your PATH, this results in gmake submitting a command with DOS syntax to a <tt>bash</tt> shell which results in the error. | This error occurs because gmake on Windows will search for a <tt>bash</tt> (or <tt>csh</tt>) anywhere in your PATH when executing shell commands and only default to <tt>cmd.exe</tt> (DOS shell) when no <tt>bash</tt> is found. The sandbox Makefile uses DOS shell (cmd) syntax, so when a <tt>bash</tt> is found on your PATH, this results in gmake submitting a command with DOS syntax to a <tt>bash</tt> shell which results in the error. | ||
Most commonly, this problem is caused by an installation of [http://en.wikipedia.org/wiki/Cygwin Cygwin]. | Most commonly, this problem is caused by an installation of [http://en.wikipedia.org/wiki/Cygwin Cygwin], though it can also be caused by an installation of the QNX Software Development Platform. | ||
;Solution | ;Solution |
Revision as of 21:08, 3 August 2011
This page describes several common problems encountered when building a STRIDE TestApp using the Off-Target Environment and suggested solutions.
Make Error 1
- Symptom
On Windows, when attempting to build the 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 -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
Make sure you have Microsoft Visual Studio 2008 or later installed.
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
On Windows, when attempting to build the testapp, either of the following errors 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
- or -
C:\stride\SDK\Windows\src>..\bin\make testapp /bin/sh: -c: line 0: syntax error near unexpected token `(' /bin/sh: -c: line 0: `IF EXIST ../out. (IF NOT EXIST ../out/src mkdir "../out/src") ELSE mkdir "../out" && mkdir "../out/src".' /bin/sh: -c: line 0: syntax error near unexpected token `(' /bin/sh: -c: line 0: `IF EXIST ../out. (IF NOT EXIST ../out/src mkdir "../out/src") ELSE mkdir "../out" && mkdir "../out/src".' /bin/sh: -c: line 1: syntax error: unexpected end of file make: *** [cleanapp] Error 258
- 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, though it can also be caused by an installation of the QNX Software Development Platform.
- 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).
Make Error 3
- Symptom
On Linux, when attempting to build the testapp, the following error is observed.
# make testapp g++ -c -I”.” -I”../../Runtime” -I”../../SLAP” -I”../../GRS” -I”../out/src” -I”../sample_src” -fPIC -D_DEBUG -O0 -g3 -Wall -o ”../out/i386-Linux-obj/srtestpp.obj” ”../../Runtime/srtestpp.cpp” /bin/sh: g++: command not found make: *** [../out/i386-Linux-obj/srtestpp.obj] Error 127
- Cause
The C++ compiler, g++ can't be found on your PATH.
Most commonly, this problem is caused by not having a complete installation of GNU Compiler Collection.
- Solution
Make sure you have a compele GNU Compiler Collection installed.
Make Error 4
- Symptom
When building the testapp, you see the following compiler errors:
../out/src/strideIM.cpp(50) : error C3861: '_srTestResultCountReset': identifier not found ../out/src/strideIM.cpp(54) : error C3861: '_srTestSendFinalStatus': identifier not found ../out/src/strideIM.cpp(56) : error C3861: '_srTestAddToTotal': identifier not found ../out/src/strideIM.cpp(56) : error C3861: '_srTestResultGetTotals': identifier not found ... ... ...
- Cause
You are using an outdated version of the STRIDE build tools.
You can see which version of the tools were used to generate your STRIDE sources by looking at the top of the strideIM.cpp source file. The comment block at the top of the file shows this version.
- Solution
Remove the old tools and/or change your path so that the current tools are used.