बाहर चेक जनवरी 09, 2018 http://planet.clang.org/
पर देखो "इसे आजमाएं!" अनुभाग:
आप पहले से ही बजना-सीएल और Windows आज पर lld-लिंक उपयोग कर रहे हैं, तो आप इस आज़मा सकते हैं। इसे सक्षम करने के लिए दो झंडे हैं, एक कंपाइलर के लिए और एक लिंकर के लिए: के उत्सर्जन को सक्षम करने के लिए। संकलक द्वारा $ H अनुभाग को डिबग करें, आपको -mllvm -emit-codeview-ghash-section
ध्वज क्लैंग- सीएल (यह झंडा भविष्य में दूर जाना चाहिए, एक बार इसे स्थिर माना जाता है और डिफ़ॉल्ट रूप से चालू होने के लिए पर्याप्त होता है)। इस जानकारी का उपयोग करने के लिए 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 निर्माण करने के लिए प्रयोग करेंगे फ़ाइलें। सीमित जो इसे एलएलवीएम 7.0 की जनवरी 09, 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 संस्करण)
<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>
x64 के लिए, -m32
करने के लिए -m64
पी पी एस बदलने के लिए, मैं भी है देशी विंडोज -10-एआरएम ऐप्स बनाने के लिए माइक्रोस्कोफ्ट एआरएम और एआरएम 64 कंपाइलर्स सक्षम (यूडब्ल्यूपी आधुनिक-कॉम-जंक नहीं)। लेकिन, अभी तक के रूप में, मैं नहीं पर्याप्त खुदाई बजना के माध्यम से सूत्रों ठीक से क्या -m32
और -m64
इंटेल कोड पीढ़ी के लिए क्या करने एआरएम के लिए कुछ इसी तरह कॉन्फ़िगर करने के लिए किया है।
इन लेखों देखें:
अच्छा जवाब। दूसरी ओर यह एलएलवीएम द्वारा v141 टूलसेट का समर्थन करने का समय होगा। – plasmacel
हाँ v140 :-) – keith
की आवश्यकता के बिना v141 का समर्थन करने के लिए उनके लिए अच्छा होगा, एलएलवीएम-बनाम 2014 से नाम बदलने के लिए उनके लिए भी अच्छा होगा! – keith