2014-09-19 3 views
1

В виде конфигурационного файла генерируется Autoconf, есть пункт внутри, как в следующем:Почему: (#!/Bin/ш /) ошибка синтаксиса около неожиданной лексемы `ц»

if ac_fn_cxx_try_compile "$LINENO"; then : 

     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 
$as_echo "yes" >&6; } 
    succeeded=yes 
    found_system=yes 

else 


fi 

И когда я исполняю ./configure это говорит мне «синтаксическая ошибка около неожиданного токена« fi »в этой строке. Это не конец файла.

+0

Если у вас нет ничего в 'else', вы получите сообщение об ошибке. Либо «delete else», либо поместите ':' между 'else' и' fi'. ** и ** избавиться от ':' после 'then'. –

+0

Правильно! Спасибо. – cbear1985

+0

Держу пари, я все время поймаю что-то простое. Если он решит проблему, вы можете выбрать ответ как правильный :) –

ответ

4

В соответствии с комментарием:

if ac_fn_cxx_try_compile "$LINENO"; then 

    $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 
    $as_echo "yes" >&6; 
    succeeded=yes 
    found_system=yes 

else 

    ## look nothing here !! 
    ## at least put a ':' 
    ## or delete else altogether 

fi 
3

Кроме того, я обнаружил, почему Autoconf создает такой конфигурационный файл. Я скопировал configure.ac из Windows, и он получил^M в качестве возврата. Autoconf считает, что^M - это что-то и добавить его в другое ...

1

Я столкнулся с этой ошибкой при компиляции libtorrent с minGW. Проблема заключалась в том, что макрос m4 сохраняется как файл DOS. Преобразование «ax_boost_base.m4» в окончание окончаний Linux делало трюк. Я почти уверен, что я неправильно сконфигурировал GIT в своих окнах: он конвертирует все файлы в DOS, что не является хорошей идеей.

+0

Большое вам спасибо. Вы и @ cbear1985 просто спасли меня много времени; Я пытался создать [libusb-compat] (https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-libusb-compat-git) в MSYS2, и я включил autocrlf в моем git конфигурации, поэтому в этих файлах были завершены строки CRLF, когда они были извлечены во время процесса сборки. –