2013-09-02 2 views
0

При построении tk8.4.19-src файлом buildall.vc для окон. Он показывает следующую ошибку:Ошибка при построении tk8.4.19-src

rules.vc(449) : fatal error U1023: syntax error in expression 
Stop. 

Я понятия не имею, решение проблемы. Пожалуйста помоги.


Edit: buildall.vc файл, который звонит NMake

@echo off 

:: This is an example batchfile for building everything. Please :: edit this (or make your own) for your needs and wants using :: the instructions for calling makefile.vc found in makefile.vc :: :: RCS: @(#) $Id: buildall.vc.bat,v 1.4 2002/11/04 07:49:43 davygrvy Exp $ 

echo Sit back and have a cup of coffee while this grinds through ;) echo You asked for *everything*, remember? echo. 

title Building Tk, please wait... 

if "%MSVCDir%" == "" call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat" ::if "%MSVCDir%" == "" call "C:\Program Files (x86)\Microsoft Visual Studio 
9.0\VC\bin\vcvars32.bat" 



set INSTALLDIR =C:\Program Files\Tcl 

:: Where is the Tcl source directory? set TCLDIR= "C:\Tcl\include\tcl8.5" ::set TCLDIR=..\..\tcl8.4 pause :: Build the normal stuff along with the help file. :: nmake -nologo -f makefile.vc release winhelp OPTS=none if errorlevel 1 goto error 

:: Build the static core, dlls and shell. :: nmake -nologo -f makefile.vc release OPTS=static if errorlevel 1 goto error pause :: Build the special static libraries that use the dynamic runtime. :: nmake -nologo -f makefile.vc core OPTS=static,msvcrt if errorlevel 1 goto error 

:: Build the core and shell for thread support. :: nmake -nologo -f makefile.vc release OPTS=threads if errorlevel 1 goto error 

:: Build a static, thread support core library (no shell). :: nmake 
-nologo -f makefile.vc core OPTS=static,threads if errorlevel 1 goto error 

:: Build the special static libraries the use the dynamic runtime, :: but now with thread support. :: nmake -nologo -f makefile.vc core OPTS=static,msvcrt,threads if errorlevel 1 goto error 

goto end 

:error echo *** BOOM! *** 

:end title Building Tk, please wait...DONE! echo DONE! pause 

Я использую ++ идентификации компилятора C является MSVC 15.0.30729.1

C++ компилятор с помощью: Visual Studio 9 2008 Win32

+0

По крайней мере, предоставите компилятор/версию, которую вы использовали, и как вы назвали NMakefile. Кроме того, попробуйте версию 8.4.20 (или даже лучше версию 8.5/8.6, которая не подходит к концу жизни, например 8.4.) – schlenk

+0

Также сообщите имя каталога, в котором вы пытаетесь выполнить сборку. –

+0

Пожалуйста, снова просмотрите вопрос. Я его отредактировал. –

ответ

0

Если посмотреть на line 449 of rules.vc in the Tcl 8.4.19 distribution, это выглядит неприметно; впереди еще много других строк, которые кажутся мне синтаксически похожими.

Если мы посмотрим на line 449 of rules.vc in the Tk 8.4.19 distribution, это также выглядит для меня незаметным; там ничего нет, что кричит «Я ошибаюсь» таким образом, что другие предыдущие строки тоже не будут делать.

Если мы посмотрим на (искаженный) код, который вы добавили, он, как представляется, относится к Tcl 8.5 или, возможно, Tk 8.5. Эквивалентные строки для Tcl 8.5.14 и Tk 8.5.14 также ничем не примечательны. (Эти версии были выбраны, потому что они были текущими в тот момент, когда вы задали свой вопрос.) Вы сильно рекомендуется не смешивать Tcl и Tk разных версий при построении Tk (но Tk может загрузить в Tcl более поздняя версия после того, как она была построена, это, скорее всего, с Tk 8.5 и Tcl 8.6, где, по крайней мере, некоторые попытки проверить, что это работает иногда).

Короче говоря, Я не могу понять, почему он может жаловаться на эту строку, в частности.

Чтобы все это сделать, вы единственный человек, у которого, похоже, есть эта проблема. Там другие люди, которые делают, строят с этими файлами в Windows (и которые быстро жалуются, когда мы совершаем в них реальную ошибку), поэтому у нас довольно высокий уровень уверенности в том, что это не проблема в любой версии rules.vc что у вас есть отчет. Это означает, что что-то не так, очень вероятно, что будет проблемой, вызванной тем, что вы делаете что-то странное. Увы, в этом мире слишком много странных вещей, и конкретный шпион этого не знаком мне.

1

я столкнулся с той же проблемой при компиляции тк 8.6.3

rules.vc(514) : fatal error U1023: syntax error in expression 

, которая является линией

!if exist("$(_TCLDIR)\include\tcl.h") 

Я установил макрос TCLDIR используя кавычки пути. Удаление цитат заставило проблему уйти для меня.

Смежные вопросы