2017-11-22 6 views
1

building V8でこのガイドに従っていますが、コンパイルの手順でいくつか問題が発生しています。私はWindows 10 x64を実行しています。私はオプションをコンパイルしようとしているのですが、エンジンを組み込むこともできます。次のコマンドを実行してWin10でV8エンジンをコンパイルするときにLNK1181エラーが発生する

ninja -C out.gn/x64.release

は私に、このエラーを与える:

ninja: Entering directory `out.gn/x64.release' 
[1/471] LINK mksnapshot.exe mksnapshot.exe.pdb 
FAILED: mksnapshot.exe mksnapshot.exe.pdb 
C:/Workspace/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 False link.exe /nologo /OUT:./mksnapshot.exe /PDB:./mksnapshot.exe.pdb @./mksnapshot.exe.rsp 
LINK : fatal error LNK1181: cannot open input file 'comdlg32.lib' 
ninja: build stopped: subcommand failed. 

は今、私は私が.libファイルを探しにエラーが絞られていると信じて間違ったディレクトリ。私は複数のバージョンがインストールされていたので、Windowsキットのインストールに複数のフォルダがありました。

Windows Kits/10/Lib/10.0.16299.0
Windows Kits/10/Lib/10.0.15xxx.0

私は10.0.15xxx.0ディレクトリに10.0.16299.0からcomdlg32.libファイルをドラッグ&ドロップした場合、エラーが異なる入力ファイルでLNK1181エラーに変更。私はこれを数回やったが、これが異なるバージョンの問題を引き起こすかどうかは不明で、おそらく多くのことが起こっていただろう。

私はそれを見つけることができない非常に最初のファイルを想定しadvapi32.lib(私は私が言及したフォルダを残し10.0.15xxx.0バージョンをアンインストールしたので、私はそれを削除し、そうした後、私は別の入力ファイルとLNK1181エラーを取得し始めています)。これがパスが間違っているという結論に至ったのです。古いバージョンをアンインストールする


  • は、だから私は、次のような(私はそれを修正するだろう古いバージョンをアンインストールして望んだ)のパスを変更するには、いくつかのことを試してみました。
  • レジストリエントリを調べて、インストールパスまたはそのパスを使用しているものが見つからないかどうかを確認します。私は、インストールと10.0.15xxx.0インストールのためのレジストリにまだインストールとデータがあったことに気づいた、私は最後の手段としてレジストリから直接削除しようとする可能性がありますか?
  • 私は明示的にこのファイルに<TargetUniversalCRTVersion>10.0.16299.0</TargetUniversalCRTVersion>を設定することにより、パスを設定しようとしている:C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\uCRT.props
  • 私はので、私は、コマンドでlib-pathのいくつかの種類を設定する方法を探してみました前に忍者を使用したことがないが、本当に見つけることができませんでした何でも
  • 私はlibsパスで何かを試して何かを見つけるために実行されているpythonスクリプトを調べましたが、何も見えませんでした。

私は任意のヘルプや提案のために感謝されます。ありがとう。https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md#using-the-visual-studio-ide

を次のコマンドを実行すると::

+0

このような大きなプロジェクトをウィンドウにビルドすることは、常に大きな混乱を招いています。 linuxを試してみると、ビルドプロセスが簡単になります。 – Ujjwal

+0

残念ながら、私が取り組んでいるWindowsアプリケーションにエンジンを埋め込もうとしています。私はそれを行うかもしれませんが、Windowsでコンパイルするまで、少なくとも私はそれを使いこなすことができます。 – notvita

答えて

0

あなたはここで説明したようにVisual Studioを使用V8をコンパイルしようとすることができます

$ gn gen --ide=vs out.gn/x64.release 
$ cd out.gn/x64.release 
$ msbuild all.sln 

あなたがここに完全な例を見ることができます:どうやらhttps://github.com/phpv8/v8js/issues/272#issuecomment-262848754

これをメソッドは、もはや正式にサポートされていませんが、私はあなたと同じ問題を抱えていました。これが私の問題を解決しました。

これ以降、別の問題がありましたが、リンクエラーのためにユニットテストがコンパイルできませんでしたが、v8を使用するために必要なライブラリがありました。だから私は行方不明のこのすべてを引き起こしている深刻な問題があるかもしれません。

編集:、これらのパラメータを設定するには

visual_studio_path = "..." 
visual_studio_version = "2017" 
wdk_path = "..." 
windows_sdk_path = "C:\Program Files (x86)\Windows Kits\10" 

ん:

また、あなたがgn argsで次のパラメータを設定しようとすることができ

gn args out.gn/x64.release 

これは、テキストエディタを開きます。あなたが興味を持っている余分なパラメータを書くことができます。

パラメータの完全なリストを表示するには、次のように指定します。

gn args --list out.gn/x64.release 
関連する問題