मुझे पता है कि कैसे कहना है कि केवल विंडोज़ पर निर्भरता की आवश्यकता है लेकिन मैं कैसे कहूं (एक क्रेट लेखक के रूप में) कि एक सुविधा केवल विंडोज़ पर उपलब्ध है।

मैंने कोशिश की (निर्भरता के आधार पर)

[target.'cfg(windows)'.features]
windbg = []

लेकिन यह काम नहीं करता।

कार्गो निर्माण कहते हैं

warning: unused manifest key: target.cfg(windows).features

और क्रेट का उपयोग करने वाला एक क्लाइंट ऐप यह कहते हुए विफल हो जाता है कि सुविधा मौजूद नहीं है

2
pm100 12 सितंबर 2020, 01:23

1 उत्तर

सबसे बढ़िया उत्तर

वर्तमान में कार्गो सुविधा के लक्ष्य प्लेटफॉर्म को निर्दिष्ट करने में सक्षम नहीं है, लेकिन आप अपने कोड में target_os को एक अतिरिक्त विशेषता के रूप में जोड़ सकते हैं ताकि संकलक को पता चल सके कि आपकी सुविधा केवल आपके द्वारा निर्धारित लक्ष्य पर ही उपलब्ध होगी।

मान लीजिए कि आपने अपनी सुविधा को नीचे की तरह परिभाषित किया है।

#[cfg(feature = "windbg")]
mod windbg {
    //...
}

आपको इसे इसके साथ बदलना होगा:

#[cfg(all(target_os = "windows", feature = "windbg"))]
mod windbg {
    //...
}
0
Ömer Erden 12 सितंबर 2020, 12:58