2016-10-04 8 views
7

एकल क्रेट परियोजनाओं के लिए, इन लाइनों को Cargo.toml पर जोड़ने की अपेक्षा की जाती है।बाहरी निर्भरताओं के साथ दहशत = abort का उपयोग कैसे करें?

cargo build --release 

हालांकि, एक परियोजना जो परोक्ष रूप से इस्तेमाल किया निर्भरता है पर, मैं एक त्रुटि हो रही है:

[profile.release] 
panic = "abort" 

तो परियोजना का निर्माण।

Compiling c_vec v1.0.12 
error: the linked panic runtime `panic_unwind` is not compiled with this crate's panic strategy `abort` 

error: aborting due to previous error 

Build failed, waiting for other jobs to finish... 
error: Could not compile `c_vec`. 

c_vec क्रेट अप्रत्यक्ष रूप से उपयोग की जाने वाली निर्भरता है।

बिना किसी विवाद के बहु-क्रेट परियोजना पर panic=abort का उपयोग कैसे करें?


विवरण बैठाना वे कोई फर्क:

  • Rustc 1.12.0
  • मुद्दे के साथ लाइब्रेरी: lodepng-rust
  • लिनक्स, 64 बिट
+0

आपका जंग संस्करण क्या है? वर्तमान रात में मैं इसका परीक्षण करने में सहायता के लिए c_vec भी निर्माण नहीं कर सकता। – LinearZoetrope

+0

@ जेएसओआर, विवरण – ideasman42

+0

धन्यवाद, और आतंक को ट्रिगर करने के लिए आप वास्तव में क्या कर रहे हैं? – LinearZoetrope

उत्तर

3

लग रहा है यह क्योंकि c_vec निर्दिष्ट करता है जैसे dylib के रूप में इसकी लाइब्रेरी प्रकारों में से एक।

मैं Github पर एक मुद्दा यहाँ के रूप में इस दायर: https://github.com/rust-lang/cargo/issues/2738

और devs में से एक से एक जवाब मिला:

आह दुर्भाग्य है कि एक बुरा त्रुटि संदेश नहीं है, लेकिन यह टोकरा प्रकार की वजह से है = ["dylib", "rlib"] c_vec crate में। यह -सी पसंद करते हैं-गतिशील जो dylib कि हम जहाज जो panic_unwind के खिलाफ संकलित किया गया है, बीच में बंद करें मोड अर्थ से जोड़ता है पारित करने के लिए कार्गो का कारण बनता है वास्तव में (इस त्रुटि संकलक से आ रही है) अमान्य है।

ठीक यहाँ c_vec टोकरा से "dylib" दूर करने के लिए किया जाएगा।

बेशक

, तो आप इस की देखभाल करने के अपने खुद के lodepng और c_vec कांटा करने के लिए होगा।

+0

मैं बंद हाथ तकनीक याद नहीं है, लेकिन मैं पढ़ रहा है कि कार्गो स्थानीय निर्भरता ओवरले का समर्थन करता है याद है, इसलिए मुझे लगता है चाहता हूँ आपको केवल 'c_vec' को फोर्क करने की आवश्यकता है यदि वह केवल' dylib' निर्दिष्ट करता है। – ssokolow

संबंधित मुद्दे