2013-01-31 13 views
10

VS11 साथ libffi संकलन निम्नलिखित लिंकर त्रुटिVS2012 के साथ संकलन libffi गंभीर त्रुटि LNK1281 के साथ विफल: SAFESEH छवि उत्पन्न करने के लिए

libffi\libffi-3.0.9\ms\Win32\Debug\ffi.dll : fatal error LNK1281: Unable to generate SAFESEH image. 

एक ही परियोजना VS10 के साथ ठीक संकलन किया गया था देता असमर्थ है, लेकिन एक ऑटो के बाद VS2012 के साथ अपग्रेड , यह लिंकर त्रुटि देने शुरू कर दिया

MSDN में स्पष्टीकरण भी गुप्त और कम से कम उपयोगी

मैं /SAFESEH:NO के साथ पुनर्निर्माण हो सकता है, लेकिन मैं निहितार्थ को लेकर अनिश्चित हूं।

कृपया सलाह दें कि क्या गलत हो सकता है।

उत्तर

20

SAFESEH नहीं होने का मुख्य निहितार्थ यह है कि आपका एप्लिकेशन विंडोज 8 स्टोर, या Windows 8 desktop certification के लिए स्वीकार नहीं किया जाएगा। यदि यह आपके लिए कोई मुद्दा नहीं है तो /SAFESEH:NO का उपयोग करने में संकोच न करें।

documentation का कहना है: क्योंकि एक या लिंकर के लिए इनपुट फ़ाइलें (मॉड्यूल) के और अधिक सुरक्षित साथ संगत नहीं था

लिंकर के लिए सबसे आम कारण नहीं निर्माण करने के लिए एक छवि है सक्षम होने के लिए अपवाद हैंडलर सुविधा। एक मॉड्यूल के लिए सुरक्षित अपवाद हैंडलर के साथ संगत नहीं होने का एक आम कारण यह है क्योंकि इसे विजुअल सी ++ के पिछले संस्करण से कंपाइलर के साथ बनाया गया था।

क्या यह संभव है कि वीएस2012 में प्रोजेक्ट अपग्रेड ने सेटिंग को /SAFESEH:YES में बदल दिया। शायद आप कभी भी SAFESEH के साथ निर्माण नहीं कर रहे हैं।

+0

आपको बहुत धन्यवाद। आप एक उद्धारक हैं। बीटीडब्ल्यू क्या आपको पता है कि यह कहीं दस्तावेज किया गया है 'सुरक्षा नहीं होने का मुख्य निहितार्थ यह है कि आपका आवेदन विंडोज 8 स्टोर के लिए स्वीकार नहीं किया जाएगा। यदि यह आपके लिए कोई मुद्दा नहीं है तो आपको/SAFESEH का उपयोग करना चाहिए: नहीं। ' – Abhijit

+0

मुझे नहीं लगता कि आपको उस पर कोई दस्तावेज मिलेगा। आप आसानी से पाते हैं कि विंडोज 8 स्टोर को सुरक्षितईएच की आवश्यकता है। लेकिन क्योंकि यह मुख्य निहितार्थ है, यह कहीं भी नहीं लिखा जाएगा और काफी हद तक राय का मुद्दा है। सुरक्षित समय लंबे समय से आसपास रहा है। कई कंपाइलर्स अपवाद सारणी बनाने में भी सक्षम नहीं हैं जिन्हें इसकी आवश्यकता होती है। और निश्चित रूप से यह दूर जा रहा है क्योंकि इसका मतलब केवल 32 बिट ऐप्स के लिए है। एक 64 बिट ऐप लिखें और आपके निष्पादन योग्य में अपवाद तालिकाएं होनी चाहिए। –

+1

धन्यवाद! मुझे StackOverflow पर एक हिट खोजने और खोजने में बहुत पसंद है जो मेरी समस्या से बिल्कुल मेल खाता है! – cplotts

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