Ошибка компиляции VxWorks

У меня возникла проблема при компиляции небольшой программы в WindWriver Workbench 3.3. Я делаю первый учебник, HelloWorld, но когда я запускаю компилятор, он возвращает следующую ошибку:

C:\Windows\Temp\make45206.sh: syntax error near unexpected token `&'
C:\Windows\Temp\make45206.sh: C:\Windows\Temp\make45206.sh: line 1:
`if [ ! -d "`dirname "HelloWorld_partialImage/Debug/HelloWorld_partialImage.o"`" ];
then mkdir -p "`dirname "HelloWorld_partialImage/Debug/HelloWorld_partialImage.o"`";
fi;
echo "building HelloWorld_partialImage/Debug/HelloWorld_partialImage.o";
dld -tX86LH:vxworks69 -X -r5 -f 0x90,1,1  -o "HelloWorld_partialImage/Debug/HelloWorld_partialImage.o" HelloWorld_partialImage/Debug/Objects/HelloWorld/main.o   C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Archivos de programa\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Archivos de programa\Microsoft Visual Studio 9.0\VC\LIB;    && if [ "0" = "1" ];
then plink "HelloWorld_partialImage/Debug/HelloWorld_partialImage.o";
fi'
C:\WindRiver\utilities-1.0\x86-win32\bin\make.exe: *** [HelloWorld_partialImage/Debug/HelloWorld_partialImage.o] Error 2

Я проверил Makefile, но не вижу никакой ошибки. Не могли бы вы помочь мне?


person Jose82    schedule 05.12.2011    source источник
comment
Я исказил сообщение об ошибке при переформатировании, чтобы оно читалось немного лучше — просто примечание, что я вставил все эти новые строки. Оно не отражает фактическое сообщение об ошибке, но, надеюсь, будет менее болезненным для чтения.   -  person sarnold    schedule 05.12.2011


Ответы (1)


Каково содержимое вашего Makefile?

Я думаю, что проблема может заключаться в разделителях ; в куче длинных путей:

\Microsoft Visual Studio 9.0\VC\LIB;    && if [ "0" = "1" ];

sh будет интерпретировать ; как несколько команд для выполнения:

$ echo hello;echo hi
hello
hi
$ 

; && в этом запутает оболочку, потому что и ;, и && служат разделителями команд:

$ echo hello ; && echo hi
bash: syntax error near unexpected token `&&'
$ 

Попробуйте заменить символы ; на : в той части Makefile, которая ведет к этим путям. (Или, может быть, пробелы.)

person sarnold    schedule 05.12.2011