2017-04-18 16 views
5

は、残念ながらそれはまだVisual Studioの2017年LLVMは、プロジェクトの<em>プラットフォームツールセット</em>を設定しようとすると<a href="http://llvm.org/builds/" rel="noreferrer">official LLVM 4.0 build for Windows</a>は、Visual Studioの2015年までのVisual Studioに統合し2017

をサポートしていないのVisual Studio 4.0を打ち鳴らしますLLVM-vs2014にすると、エラーがポップアップします。

これを機能させる方法はありますか?

答えて

7

C++ v140ツールセットに付属するmsbuildターゲットがいくつか必要で、VS2017はデフォルトでv141ツールセットのみをインストールします。 VS 2017インストーラーを開く場合、v140ツールセットのチェックボックスを見つけてインストールすると、適切なC++ msbuildターゲットが使用可能になり、問題なく動作します。

+0

良い答え:

は、これらの記事を参照してください。一方、LLVMによってv141ツールセットをサポートするのは時間です。 – plasmacel

+0

はい、v140を必要とせずにv141をサポートするのは良いでしょう:-) – keith

+4

LLVM-vs2014から名前を変更するのも良いでしょう! – keith

1

LLVM/ClangにVS2017で使用できる更新パッチが追加されました。しかし、彼らはまだVS2017を直接サポートしていません。 VS2017のサポートを更新するためにLLVM開発者メーリングリストに頼んだので、うまくいけば彼らはそれをやるでしょう。彼らが私の言ったことを聞くならば。

+0

あなたはパッチに向かって私を指摘できますか? – batbrat

1

私はLLVM Clang 7.0をVisual Studio 2017アップデート15.5.6と統合する方法を知りました。最新のLLVMビルドを使用したPDBベースのデバッグをフルサポートするv1913

、すなわちlld-link/DEBUG:GHASH; clang-cl -mllvm -emit-codeview-ghash-section clangへのフラグ。

これは3段階の処理です。

  1. toolset.props、最新の打ち鳴らすをサポートするために、VSでtoolset.targets
  2. があなたのC/C++または他のlangプロジェクト
を構築するために使用する新しいツールセットを選択し、最新のllvm
  • アップデートをインストールします。

    Visual Studio 2017アップデート15.4.5時点では、Microsoftの「実験的な」Clang C2は動作しなくなりました。したがって、完全なPDB(CodeView/Z7限定ではない)デバッグ容易性を持つコードをコンパイルするためにclangを使用するには、上記の修正が必要です。これは、clangコンパイラフロントエンドからLLVM codegenバックエンドとLLVMリンカまでのすべてのLLVMコンポーネントを使用してWindows用のビルドとPDBデバッグを行うことができるため、クロスプラットフォームビルドのポータビリティテストのためのより完全なスイートになりました。

    乾杯、デビッド

  • 0

    は2018年1月9日http://planet.clang.org/

    を見て確認してください "それを試してみてください!" とセクション:

    すでに今日Windows上打ち鳴らす-CLLLD-リンクを使用している場合、あなたはこれを試してみることができます。これを有効にするには、コンパイラ用とリンカ用の2つのフラグが必要です。 .debug $ Hセクションのコンパイラによるセクションを有効にするには、文書化されていない-mllvm -emit-codeview-ghash-sectionフラグをに渡す必要があります。clang- cl(このフラグは将来的には消えてしまいます。これは、安定していて、デフォルトで有効になっていると思われます)。 lld-linkにこの情報を使用するように指示するには、/DEBUG:GHASHをlldに渡す必要があります。

    あなただけのいずれかのあなたの C++プロジェクトに -mllvm -emit-codeview-ghash-sectionフラグを渡す必要があり

    :地域、またはあなたがC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\LLVM-vs2017または C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Platforms\x64\PlatformToolsets\LLVM-vs2017で作成された「toolset.props」ファイルに直接それらを置く「コマンドラインをその他のオプション」 。

    キーは、これらのCLIオプションを追加することで、あなたがLLD(別名LLD-リンク)を理解し、完全に埋めPDBを生成するために使用するデバッグ情報を発するように打ち鳴らすを言っているということですファイル。 に限定されているものではなく、LLVM 7.0の1月9日、2018滴前に作られたものではありません。

    toolset.targets:(任意のバージョン)

    <Project ToolsVersion="14.1" 
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
        <Import Project="$(VCTargetsPath)\Microsoft.CppCommon.targets" /> 
    </Project> 
    

    toolset.props:(Win32版)x64の場合

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
        <Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v141\Microsoft.Cpp.$(Platform).v141.props" Condition="Exists('$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v141\Microsoft.Cpp.$(Platform).v141.props')"/> 
        <Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v141\Toolset.props" Condition="Exists('$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v141\Toolset.props')"/> 
    
        <PropertyGroup> 
        <LLVMInstallDir>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\LLVM\LLVM)</LLVMInstallDir> 
        <LLVMInstallDir Condition="'$(LLVMInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LLVM\LLVM)</LLVMInstallDir> 
        <ExecutablePath>$(LLVMInstallDir)\msbuild-bin;$(ExecutablePath)</ExecutablePath> 
        <LibraryPath>$(LLVMInstallDir)\lib\clang\7.0\lib\windows;$(LibraryPath)</LibraryPath> 
        </PropertyGroup> 
    
        <ItemDefinitionGroup> 
        <ClCompile> 
         <!-- remove the implicit vcxxx.pdb path to avoid rebuilds every time as clang-cl only supports /Z7 --> 
         <ProgramDataBaseFileName></ProgramDataBaseFileName> 
         <!-- Set the value of _MSC_VER to claim for compatibility --> 
         <AdditionalOptions>-m32 -fmsc-version=1913 %(AdditionalOptions)</AdditionalOptions> 
        </ClCompile> 
        </ItemDefinitionGroup> 
    </Project> 
    

    -m32から-m64

    PPSを変更、私も持っていますネイティブのWindows-10-ARMアプリケーションを構築するためのMicrosoftのARMおよびARM64コンパイラをサポートしています(UWPの最新のCOM-Junkではありません)。しかし、まだとして、私はきちんとインテルコード-GENのために何-m32-m64を行うにはARMのための同様のものを設定するには、打ち鳴らす源を掘り十分に行っていません。

    関連する問題

     関連する問題