SAFESEH চিত্র সি ++ এর জন্য মডিউলটি অনিরাপদ


87

আমি মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও 2011 পেশাদার বিটা ব্যবহার করছি

আমি সিপেক এবং ভিজ্যুয়াল স্টুডিও কমপ্লায়ার ব্যবহার করে সংকলিত ওপেনসিভি সি ++ ফাইলগুলি ( http://opencv.willowgarage.com/wiki/Welcome ) চালানোর চেষ্টা করছি ।

তবে আমি যখন প্রকল্পটি ডিবাগ করতে যাই তখন আমি বেশিরভাগ 600০০+ ত্রুটি পাই:

ত্রুটি LNK2026: নিরাপদ চিত্রের জন্য মডিউলটি অনিরাপদ।

স্পষ্টতই এই ফাইলগুলি ওপেনসিভি_ফ্যাম্পেগ প্রকল্পে রয়েছে তবে আমি সেগুলি খুঁজে পেলাম না, মাইক্রোসফ্ট সহায়তা পৃষ্ঠায় নিরাপদ সেফ এক্সসেপশন হ্যান্ডলারের পৃষ্ঠাটি দেখেছি তবে আমি কোনও নির্দিষ্ট উত্তর খুঁজে পাইনি।

আমি ভাবছিলাম যে অন্য কারও যদি এই সমস্যা হয়েছে এবং তারা যদি এটিকে ঠিক করতে সক্ষম হন।


12
আপনি যখন একটি .obj বা .lib লিঙ্ক করেন যখন সংকলকটির পূর্ববর্তী সংস্করণ দ্বারা তৈরি করা কোড থাকে This আপনি যদি উত্সের পরিবর্তে ওপেনসিভি_ফম্প্পিগের জন্য বাইনারি ডাউনলোড করেন তবে অবশ্যই কোনটি সাধারণ। আপনি লিঙ্কারের বিকল্পটি বন্ধ করতে পারেন তবে তারপরেও আপনার কাছে একটি সিআরটি সংস্করণ অসম্পূর্ণতা থাকবে যা বাইট করতে পারে। উত্স থেকে লাইব্রেরি পুনর্নির্মাণ।
হান্স প্যাস্যান্ট

সহায়তার জন্য ধন্যবাদ, এটি কাজ করেছে
অ্যারন থম্পসন

@ হান্সপাস্যান্ট যখন কোন উত্স নেই তখন কী করবেন?
গ্রেগসি

4
সুস্পষ্ট বিষয়: কোডটির মালিককে আপনাকে একটি আপডেট সরবরাহ করতে বলুন।
হান্স প্যাস্যান্ট

@ হ্যান্সপাস্যান্ট আমি আশা করি সরবরাহকারী এখনও আপডেট করার আশেপাশে রয়েছেন। "ট্র্যাক ফ্যাক্টর অফ এক অফ" জাতীয় ধরণের সমস্যার মতো মনে হচ্ছে।
গ্রেগসি

উত্তর:


63

মন্তব্য থেকে:

আপনি যখন একটি .obj বা .lib লিঙ্ক করেন যখন সংকলকটির পূর্ববর্তী সংস্করণ দ্বারা তৈরি করা কোড থাকে This আপনি যদি উত্সের পরিবর্তে ওপেনসিভি_ফম্প্পিগের জন্য বাইনারি ডাউনলোড করেন তবে অবশ্যই কোনটি সাধারণ। আপনি লিঙ্কারের বিকল্পটি বন্ধ করতে পারেন তবে তারপরেও আপনার কাছে একটি সিআরটি সংস্করণ অসম্পূর্ণতা থাকবে যা বাইট করতে পারে। উত্স থেকে লাইব্রেরি পুনর্নির্মাণ। - হ্যানস প্যাস্যান্ট 15 ই মে 13:01  
 
সহায়তার জন্য ধন্যবাদ, এটি কাজ করেছে - অ্যারন থম্পসন 17 ই মে 14:50


এটি ত্রুটি হিসাবে বলা হয়েছে, মডিউলগুলির জন্য যার ফলে লিঙ্কার নিরাপদ ব্যতিক্রম হ্যান্ডলারগুলি খুঁজে পায় না by বিশেষ করে সমাবেশ ভাষা মডিউলগুলি - যেমন অন্যান্য উত্তরে আলোচনা করা হয়েছে discussed এখানে এই সম্পর্কে কিছু তথ্য আছে
নিক ওয়েস্টগেট

149

প্রকল্পের বৈশিষ্ট্যগুলিতে "চিত্রের নিরাপদ ব্যতিক্রমী হ্যান্ডলারগুলি রয়েছে" - অক্ষম করার বিকল্পটি -> কনফিগারেশন বৈশিষ্ট্য -> লিংকার -> উন্নত ট্যাব আমাকে সহায়তা করেছে।


4
এটি আমার জন্য কোনও প্রভাব ফেলেনি।
পপ-এ-স্ট্যাশ

একইভাবে আমার জন্য। ধরা পড়েছে বলে মনে হচ্ছে, যদিও আমি নিরাপদ: লিংক সেটিংসের অধীনে অ্যাডভান্সড অপশন সাবমেনুতে নির্বাচন করতে পারি না, এটি নির্বাচিত থাকবে না। এটি সর্বদা নিরাপদে ফিরে আসে: হ্যাঁ।
ব্যবহারকারীর 382459

সাফল্য, ভিএস 2013 এক্সপ্রেসের সাথে
গ্যাব্রি

4
সাফল্য, ভিএস 2015

4
সাফল্য, ভিএস 2017
ke4ktz

12

ভিজ্যুয়াল স্টুডিওতে জেডএলআইবি তৈরি করার সময় আপনি যদি এই ত্রুটিটি পেয়ে থাকেন তবে এটি সমাধান। বিকল্প হিসাবে সন্ধান করুন contrib\masmx86\bld_ml32.batএবং যুক্ত করুন/safeseh

আগে

ml /coff /Zi /c /Flmatch686.lst match686.asm
ml /coff /Zi /c /Flinffas32.lst inffas32.asm

পরে

ml /safeseh /coff /Zi /c /Flmatch686.lst match686.asm
ml /safeseh /coff /Zi /c /Flinffas32.lst inffas32.asm

আমার zlib একই সমস্যা ছিল, কিন্তু .asmপরিবর্তে সমাধান এক্সপ্লোরার ফাইলগুলিতে প্রপস পরিবর্তন করতে হয়েছিল।
সিলি ম্যালান

11

অন্য উপায়টি হ'ল কিছু এসইএইচ হ্যান্ডলার যুক্ত করুন (উদাহরণস্বরূপ খালি) এএসএম ফাইলগুলিতে এবং সেগুলি /safesehবিকল্পের সাথে সংকলন করুন , তারপরে সাধারণত অন্য কোডটি /SAFESEH:YESসংকলক বিকল্পের সাথে সংকলন করুন।

খালি এসইএইচ হ্যান্ডলার:

.safeseh SEH_handler

SEH_handler   proc
;handler
ret

SEH_handler   endp

4
আমি তৃতীয় পক্ষের উত্স (zlib) এ কোনও হ্যান্ডলার যুক্ত করার বিরক্ত করিনি, /safesehযথেষ্ট বলে মনে হচ্ছে। এই সত্যিই upvated করা উচিত!
mlt

4
যে কেউ zlib সঙ্গে একই সমস্যা হচ্ছে আমরা দেখি (Ctrl + F safeseh) tannerhelland.com/5076/compile-zlib-winapi-wapi-stdcall
codekiddy

আমি .asm ফাইলের বৈশিষ্ট্যগুলিতে কমান্ড লাইনে "/ Safeseh" যুক্ত করেছি এবং এটি কাজ করেছে।
নরবার্ট বোরোস

0

আপনার মাইলেজটি পৃথক হতে পারে, তবে উপরের পরামর্শগুলির মধ্যে আমার পক্ষে কাজ করা হয়নি (যদিও আমি আমার নিজের asm ব্যতিক্রম হ্যান্ডলারটি ঘূর্ণায়নের চেষ্টা করি নি)।

কাজটি হ'ল বিল্ড টার্গেট রিলিজ / এক্স 64 নির্বাচন করা।

আমি একটি 64-বিট মেশিনে উইন্ডোজ 10 চালাচ্ছি এবং ভিজ্যুয়াল স্টুডিও 2015 ব্যবহার করছি।

লক্ষ্য রিলিজ / উইন 32 কাজ করে। আমার ধারণা মূল বিষয়টি "রিলিজ" বাছাই করা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.