julius-speech / julius

Open-Source Large Vocabulary Continuous Speech Recognition Engine
BSD 3-Clause "New" or "Revised" License
1.84k stars 300 forks source link

Cannot build with Visual Studio (maybe not just 2017) #92

Closed intat closed 5 years ago

intat commented 5 years ago

There are 2 solutions founded.

  1. Changing the encoding of libjulius/src/search_bestfirst_main.c to UTF-8 with BOM.
  2. Adding "/source-charset:utf-8" into compile options of project "libjulius".

Visual Studio 2017 showed following errors ( sorry about I use Japanese VS).

4>------ ビルド開始: プロジェクト: libjulius, 構成: Debug Win32 ------
4>cl : コマンド ライン warning D9035: オプション 'Gm' の使用は現在推奨されていません。今後のバージョンからは削除されます。
4>vad_sp.c
4>vad_gmm.c
4>vad_filterbank.c
4>vad_core.c
4>spl_inl.c
4>resample_fractional.c
4>resample_by_2_internal.c
4>resample_48khz.c
4>get_scaling_square.c
4>energy.c
4>division_operations.c
4>fvad.c
4>word_align.c
4>wchmm_check.c
4>c:\workspace\julius\libjulius\src\wchmm_check.c(238): warning C4101: 'j': ローカル変数は 1 度も使われていません。
4>wchmm.c
4>wav2mfcc.c
4>version.c
4>useropt.c
4>c:\workspace\julius\libjulius\src\useropt.c(143): warning C4113: 'void (__cdecl *)()' はパラメーター リストが 'void (__cdecl *)(void)' と異なります。
4>spsegment.c
4>c:\workspace\julius\libjulius\src\spsegment.c(169): warning C4018: '<': signed と unsigned の数値を比較しようとしました。
4>c:\workspace\julius\libjulius\src\spsegment.c(203): warning C4018: '<': signed と unsigned の数値を比較しようとしました。
4>search_bestfirst_v2.c
4>コードを生成中...
4>コンパイル中...
4>search_bestfirst_v1.c
4>search_bestfirst_main.c
4>c:\workspace\julius\libjulius\src\search_bestfirst_main.c(540): warning C4244: '+=': 'double' から 'LOGPROB' への変換です。データが失われる可能性があります。
4>c:\workspace\julius\libjulius\src\search_bestfirst_main.c(581): warning C4244: '=': 'double' から 'LOGPROB' への変換です。データが失われる可能性があります。
4>c:\workspace\julius\libjulius\src\search_bestfirst_main.c(1158): warning C4101: 'j': ローカル変数は 1 度も使われていません。
4>c:\workspace\julius\libjulius\src\search_bestfirst_main.c(1551): warning C4244: '=': 'double' から 'LOGPROB' への変換です。データが失われる可能性があります。
4>c:\workspace\julius\libjulius\src\search_bestfirst_main.c(2305): error C2143: 構文エラー: ';' が '{' の前にありません。
4>c:\workspace\julius\libjulius\src\search_bestfirst_main.c(2347): error C2143: 構文エラー: ';' が '{' の前にありません。
4>c:\workspace\julius\libjulius\src\search_bestfirst_main.c(1235): fatal error C1075: '{': 一致するトークンが見つかりませんでした

following is additional infomations. VS2017 updated this vs projects, Windows SDK to 10.0.17763.0, and Platform Tools Set to v141. OS is windows 10 64bit, but I built in Win32.

LeeAkinobu commented 5 years ago

Thanks for the report! I reproduced the problem.

I've decided to upgrade the .vcxproj files to VS2017. For users still working with VS2013 toolset, the old project files are kept as "*2013.vcxproj" and can be invoked with solution file msvc/JuliusLib_vs2013_v120.sln.

The changes has been commited to master branch.