Qt 5.1.1: প্ল্যাটফর্ম প্লাগইন "উইন্ডোজ" অনুপস্থিত থাকায় অ্যাপ্লিকেশন শুরু করতে ব্যর্থ হয়েছে


124

সম্পাদনা: কিছু লোক আমার প্রশ্নটিকে সদৃশ হিসাবে চিহ্নিত করতে শুরু করেছে। ভুলে যাবেন না যে আমি এই প্রশ্নটি করার সময় অনুরূপ অনেকগুলি প্রশ্ন বিদ্যমান ছিল (উদাহরণস্বরূপ নীচের তালিকাটি দেখুন)। যাইহোক, এই উত্তরগুলির কোনওোটাই আমার সমস্যার সমাধান করেনি । দীর্ঘ অনুসন্ধানের পরে আমি একটি মন্তব্য পেয়েছি যা অনুপস্থিত lib এর দিকে ইঙ্গিত করে সমস্ত ব্যবহারকারীদের দ্বারা উপেক্ষা করা হয়েছিল। এখন, অনেক মাস পরে, মন্তব্যটি একটি উত্তরে পরিবর্তিত হয়েছে। যাইহোক, যখন আমি মনসাই দ্বারা এই প্রশ্নের উত্তর দিয়েছিলাম তখন আমি সমাধান সমাধানের মাধ্যমে অন্য ব্যক্তিকে সহায়তা করার ইচ্ছা করি। এটি ভুলে যাওয়া উচিত নয় এবং এখনও অবধি আমার উত্তরটি অনেক লোককে সহায়তা করেছিল। সুতরাং আমার প্রশ্নটি অবশ্যই একটি সদৃশ নয়। উপায় দ্বারা: উপরে প্রদত্ত লিঙ্কটির মধ্যে গৃহীত উত্তরটি সমস্যার সমাধান করে না !


হ্যাঁ, আমি অনুসন্ধানটি ব্যবহার করেছি:

প্ল্যাটফর্ম প্লাগইন "উইন্ডোজ" লোড করতে ব্যর্থ। উপলব্ধ প্ল্যাটফর্মগুলি হ'ল: ত্রুটি

ভিজ্যুয়াল স্টুডিও qwindows.dll ত্রুটি থেকে কিউটি সি ++ অ্যাপ্লিকেশন স্থাপন করা হচ্ছে

প্ল্যাটফর্ম প্লাগইন "উইন্ডোজ" লোড করতে ব্যর্থ হয়েছে উপলব্ধ প্ল্যাটফর্মগুলি হ'ল: উইন্ডোজ, ন্যূনতম

যাইহোক, আমার ক্ষেত্রে সমস্যাটি এখনও অব্যাহত রয়েছে। আমি ভিজ্যুয়াল স্টুডিও 2012 এর সাথে কিউটি 5.1.1 ব্যবহার করছি এবং কিউটি ক্রিয়েটার 2.8.1 এর সাথে উইন্ডোজ 7 এ আমার অ্যাপ্লিকেশনটি বিকাশ করেছি। অ্যাপ্লিকেশনটি "রিলিজ" -মোডে সংকলিত হয়েছে এবং Qt ਸਿਰ্রোজকের সাথে সরাসরি শুরু করা হলে তা কার্যকর করা যেতে পারে।

তবে, "রিলিজ"-ফোল্ডার থেকে শুরু করার সময়, আমি নিম্নলিখিত বার্তাটি পাই:

এই অ্যাপ্লিকেশনটি আরম্ভ করতে ব্যর্থ হয়েছিল কারণ এটি Qt প্ল্যাটফর্ম প্লাগইন "উইন্ডোজ" খুঁজে বা লোড করতে পারেনি। উপলব্ধ প্ল্যাটফর্ম প্লাগইনগুলি হ'ল: ন্যূনতম, অফস্ক্রিন, উইন্ডোজ।

ফোল্ডার কাঠামো এর মতো দেখাচ্ছে:

release
+ gui.exe
+ icudt51.dll
+ icuin51.dll
+ icuuc51.dll
+ libGLESv2.dll
+ Qt5Core.dll
+ Qt5Gui.dll
+ Qt5Widgets.dll
+ platforms

প্ল্যাটফর্মগুলি হ'ল ফোল্ডারটি Qt \ Qt5.1.1 v 5.1.1 \ msvc2012 \ প্লাগইনস \ প্ল্যাটফর্মগুলি যেমন qwindows.dll সহ সরাসরি অনুলিপি করে । কিছু অন্যান্য ব্যবহারকারীর মতো আমি যদি এটির নাম "প্ল্যাটফর্ম" করে রাখি তবে কিছু যায় আসে না। কিউটি এখনও "প্ল্যাটফর্ম প্লাগইন উইন্ডোজ" খুঁজে পাচ্ছে না, আমার ভুলটি কোথায়?


5
আমারও একই সমস্যা ছিল উইন্ডোজ 8.1 Qt 5.3.1 MinGW 32, গতিশীল লিঙ্কিং। কিউটি-র ফোল্ডার থেকে ডিএলএল অনুলিপি করে সমাধান করা হয়েছে ../Myapp/platforms/qwindows.dll। দ্রষ্টব্য: পথে কোনও "প্লাগইন" দির নেই
দিমিত্রি


অনুরূপ সমস্যাগুলির মধ্যে রয়েছে, দয়া করে সরঞ্জামটি ব্যবহার করুন Depends, যা আপনাকে ডিএলএল নির্ভরতা এবং সেগুলি থেকে প্রাপ্ত সমস্যাগুলি দেখায়। আপনি এই সরঞ্জামটি কোনও এক্সি বা ডিএল ফাইলের স্থিতিশীল বিশ্লেষণের জন্য ব্যবহার করতে পারেন, তবে গতিশীল লোডড ডিএলএলগুলির সাথে অ্যাপ্লিকেশনটির প্রারম্ভিকতা প্রদর্শন করতে এটি ব্যবহার করতে পারেন।
ফ্লাভিডিস

ব্যবহারের windeployQt
CrippledTable

উত্তর:


64

ঠিক আছে, এখানে অন্য ব্যবহারকারীদের খুব বেশি মনোযোগ না দিয়ে https://stackoverflow.com/a/17271172/1458552 হিসাবে পোস্ট করেছেন :

LibEGL.dll হাতছাড়া হয়ে গেল! যদিও অ্যাপ্লিকেশনটি শুরু করার চেষ্টা করার সময় এটি প্রতিবেদন করা হয়নি (Qt5Gui.dll এর মতো অন্যান্য সমস্ত * .dlls জানা গেছে)।


2
আমার ক্ষেত্রে: Qt \ Qt5.1.1 \ 5.1.1 \ msvc2012 \ বিন (অবশ্যই আপনার ভিজ্যুয়াল স্টুডিও সংস্করণের উপর নির্ভর করে)
বেনামে

8
আপনি কীভাবে জানবেন যে নিখোঁজ ডেলটি লিবিগেল ছিল?
ব্যবহারকারী 1493046

4
আপনি আমার ঘন্টা বাঁচিয়েছেন! এই একই সমস্যা ছিল কিউটি 5.3.1
তারাবিতে

4
@ ব্যবহারকারী 1493046 আমি নির্ভর করে এবং এর প্রোফাইলিং মোড (F7) ব্যবহার করে এটি পুনরুত্পাদন করতে পেরেছি । অ্যাপ্লিকেশনটি শুরু হয়ে ত্রুটিটি দেখানোর পরে, libEGL.dll নির্ভরতা তালিকায় উপস্থিত হয়েছিল।
lapis

17
LibEGL.dll যোগ করা কার্যকর হয়নি। তবে, নিম্নলিখিত পরিবেশের পরিবর্তনশীল সেট করা আমার পক্ষে কাজ করেছে: QT_QPA_PLATFORM_PLUGIN_PATH =% QTDIR% \ প্লাগইনস \ প্ল্যাটফর্মগুলি
আর্সালঙ্ক 2

36

আমি আমার উদাহরণের পাশে একটি প্ল্যাটফর্ম ডিরেক্টরি তৈরি করেছি এবং ভিতরে qwindows.dll রেখেছি, তবে আমি এখনও "প্ল্যাটফর্ম প্লাগইন" উইন্ডোজ লোড করতে ব্যর্থ হয়েছে। উপলব্ধ প্ল্যাটফর্মগুলি হ'ল: উইন্ডোজ "ত্রুটি।

আমি সি: \ কিউটি \ কিউটি 5.1.1 from সরঞ্জামগুলি C কিউটিক্রিটার \ বিন \ প্লাগইনস \ প্ল্যাটফর্মগুলি থেকে qwindows.dll অনুলিপি করেছি, যা সঠিক অবস্থান নয়। আমি কিউটি ক্রিয়েটারে চলমান থেকে ডিবাগ লগটি দেখেছিলাম এবং দেখতে পেয়েছি যে আমার অ্যাপটি সি: \ কিউটি \ কিউটি 5.1.1 \ 5.1.1 ing মিংডব্লু 48_32 \ প্লাগইনস \ প্ল্যাটফর্মগুলিতে সন্ধান করছে যখন এটি ডিবাগারে চলেছিল।

আমি যখন সি: \ কিউটি \ কিউটি 5.1.1 \ 5.1.1 \ মিংডব্লিউ 48_32 \ প্লাগইনগুলি \ প্ল্যাটফর্মগুলি থেকে অনুলিপি করেছি, সবকিছু ঠিকঠাক কাজ করেছে।


38
নিম্নলিখিত পরিবেশের পরিবর্তনশীল সেট করা আমার পক্ষে কাজ করেছে: QT_QPA_PLATFORM_PLUGIN_PATH =% QTDIR% \ প্লাগইনস \ প্ল্যাটফর্মগুলি \
আর্সালঙ্ক 2

24

রিলিজটিতে সম্ভবত একটি লাইব্রেরি / প্লাগইন অনুপস্থিত বা লাইব্রেরিটি ভুল ডিরেক্টরিতে এবং অথবা ভুল ডিরেক্টরি থেকে রয়েছে।

কিউটি অভিযুক্ত উত্তর: উইন্ডোপ্লাইক্ট ব্যবহার করুন । ব্যাখ্যার জন্য শেষ অনুচ্ছেদ দেখুন

ম্যানুয়াল উত্তর:

আপনার অ্যাপ্লিকেশন.এক্সি ফাইলের মতো একই ডিরেক্টরিতে "প্ল্যাটফর্ম" নামে একটি ফোল্ডার তৈরি করুন। "প্ল্যাটফর্ম" ফোল্ডারে আপনার অ্যাপ্লিকেশন প্রকাশের জন্য যে কোনও সংকলক ব্যবহার করেছেন / এর / বিনে পাওয়া qwindows.dll অনুলিপি করুন এবং আটকান। ম্যাজিক মত এটি কাজ করে। .Dll না থাকলে প্লাগইন / প্ল্যাটফর্মগুলি / (প্লাগইন সহ / বিন / একই ডিরেক্টরিতে থাকা) <- পিফুনিগুয়ের মন্তব্য।

এটি একটি সাধারণ সমস্যা বলে মনে হচ্ছে এটি .dll ভুল সংকলক বিন থেকে নেওয়া হয়েছিল। আপনার অ্যাপ্লিকেশন প্রকাশের জন্য ব্যবহৃত একই সংকলক থেকে আপনার qwindows.dll অনুলিপি করে নিশ্চিত করুন।

কিউটি প্ল্যাটফর্ম কনসোল অ্যাপ্লিকেশনগুলির সাথে আসে যা আপনার নির্ধারিত এক্সিকিউটেবলের ফোল্ডারে সমস্ত নির্ভরতা (qwindows.dll এবং libEGL.dll এর মতো) যুক্ত করবে। এটি আপনার অ্যাপ্লিকেশন মোতায়েনের উদ্দেশ্যে করা উপায়, সুতরাং আপনি কোনও লাইব্রেরি মিস করবেন না (যা এই উত্তরগুলির সাথে মুখ্য বিষয়)। উইন্ডোজের জন্য অ্যাপ্লিকেশনটিকে উইন্ডোপ্লাইক্ট বলা হয় । প্রতিটি ওএসের জন্য একটি ডিপ্লোয়মেন্ট কনসোল অ্যাপ রয়েছে।


1
এই আমি কী প্রয়োজন ছিল তা হল: মনে রাখবেন, qwindows.dll বিন নেই / আপনার কিউটি প্ল্যাটফর্ম ইনস্টল করুন, কিন্তু প্লাগিন / প্ল্যাটফর্মের মধ্যে /, প্লাগিন / বিন / হিসাবে একই ডিরেক্টরির মধ্যে হচ্ছে
PfunnyGuy

1
ধন্যবাদ! সংক্ষেপে, ফাইলগুলি হ'ল: প্রধান ডিরেক্টরিতে Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll এবং আপনার অ্যাপ.এক্সি এবং উপ-ডিরেক্টরিতে প্ল্যাটফর্মগুলি \ qwindows.dll এবং প্ল্যাটফর্মগুলি b libEGL.dll।
পিয়েরে

1
উইন্ডোপ্লাইকেট সঠিক উত্তর। আমি এটি ব্যবহার করেছি এবং এটি .exe এর পাশের প্রয়োজনীয় সমস্ত কিছু অনুলিপি করেছে। কোন dll প্রয়োজন এবং কোনটি নয় তা জেনে অনুমানের কাজটি সরিয়ে দেয়
এইচ। আল-আম্রি

14

সেট QT_QPA_PLATFORM_PLUGIN_PATH% QTDIR% \ প্লাগিন \ প্ল্যাটফর্মের \ করার এনভায়রনমেন্ট ভেরিয়েবল আমার জন্য কাজ

এটি এখানে এবং এখানেও উল্লেখ করা হয়েছিল ।


3
যদিও এই উত্তরটি এটি আপনার বর্তমান মেশিনে কাজ করতে পারে, এটি অন্যদের যারা তাদের প্রোগ্রামগুলি অন্য মেশিনে স্থাপন করার চেষ্টা করছেন এবং কোন লাইব্রেরি অনুপস্থিত / প্রয়োজনীয় তা সুনির্দিষ্টভাবে সনাক্ত করার দরকার নেই help
আরটিবিকার্ড

1
2017 এ, এটি আমার পক্ষে কাজ করেছিল। আমি কোনও আবেদন স্থাপন করব না! কিউটি স্রষ্টার সাথে সবেমাত্র খুলুন \ নতুন ফাইল বা প্রকল্প ... t কিউটি উইজেটস অ্যাপ্লিকেশন, তারপরে রান করুন এবং এটি একই বার্তায় ক্র্যাশ হয়ে গেছে। এই var সেট করা আমাকে সাহায্য করে।
ফিবর

আপনার অসম্পূর্ণ "ডিস্ট্রো" পাশাপাশি কোথাও প্লাগইন ফোল্ডারটি অনুলিপি করুন এবং এনভির ভারটিকে এটিতে নির্দেশ করুন - কাজ করা উচিত ("কিটিটিডিআইআর" ব্যবহার করার দরকার নেই) :)
mlvljr

9

আমি এটিতে ছুটে এসেছি এবং আমার কাছে পাওয়া উত্তরগুলির কোনওটাই আমার জন্য এটি স্থির হয়নি fixed

আমার ক্যাল্যালোজে তার মেশিনে কিউটি (5.6.0) ইনস্টল করা আছে: সি: \ কিউটি \ কিউটি 5.6.0 \ 5.6 \ এমএসভিসি2015 \ প্লাগইনস
আমি একই স্থানে কিউটি (5.6.2) ইনস্টল করেছি।

আমি এই পোস্টটি থেকে শিখেছি: http://www.tripleboot.org/?p=536 , যে Qt5Core.dll এর লেখা প্লাগইনগুলির একটি অবস্থান আছে যখন Qt প্রথম ইনস্টল করা হয়। যেহেতু আমার সহকর্মীর এবং আমার কিউটি ডিরেক্টরিগুলি একই ছিল, তবে কিউটির বিভিন্ন সংস্করণ ইনস্টল করা আছে, একটি আলাদা কিউইন্ডউস.ডিএল ফাইল প্রয়োজন। আমি যখন তার দ্বারা মোতায়েন করা একটি এক্সি চালাতাম, তখন এটি আমার সি: \ কিউটি \ কিউটি 5.6.0 \ 5.6 \ এমএসভিসি २०१\ \ প্লাগইনস \ প্ল্যাটফর্মগুলি w qwindows.dll ফাইলটি এক্সিকিউটেবলের পাশে অবস্থিত ফাইলের পরিবর্তে sub প্ল্যাটফর্ম সাবফোল্ডারটি ব্যবহার করবে।

এটি ঘুরে দেখার জন্য, আমি নীচের কোডের লাইনটি অ্যাপ্লিকেশনটিতে যুক্ত করেছি যা দেখে মনে হয় এটি Qt5Core.dll এর পথে তাকানোর আগে 'প্ল্যাটফর্মগুলি' সাবফোল্ডারটির জন্য এক্সের পাশে দেখতে বাধ্য করবে।

QCoreApplication::addLibraryPath(".");

আমি কিউ অ্যাপ্লিকেশন কল এর আগে মূল পদ্ধতিতে উপরের লাইনটি যুক্ত করেছি:

int main( int argc, char *argv[] )
{
    QCoreApplication::addLibraryPath(".");
    QApplication app( argc, argv );
    ...
    return app.exec();
}

1
এই একজন আমার পক্ষে কাজ করেছেন ... তবে মনে রাখবেন যে আপনার qwindowsd.dllযদি এমন কোনও পরিস্থিতিতে আপনার সহকর্মীদের সাথে ডিবাগ
বিল্ডিং

এইটি আমার পক্ষে কাজ করেছিল কারণ qwindowsd.dll উল্লেখ করার পরে, আমি জানতাম যে আমার অ্যাপটি ডিবাগ মোডে সংকলিত হয়েছে এবং আমি Qtxxxd.dll লাইব্রেরি ইনস্টল করেছি তবে প্ল্যাটফর্ম ফোল্ডারে qwindows.dll ব্যবহার করছিলাম।
গুস্তাভো রদ্রিগেজ

6

দির তৈরি করুন platforms এবং qwindows.dllএটিতে অনুলিপি করুন platformsএবং app.exeএকই দির সাথে আছেন

cd app_dir mkdir platforms xcopy qwindows.dll platforms\qwindows.dll

ফোল্ডার কাঠামো + app.exe + platforms\qwindows.dll


এই প্রশ্নের মধ্যে উল্লেখ করা হয়েছে যে "প্ল্যাটফর্মগুলি Qt \ Qt5.1.1 \ 5.1.1 \ msvc2012 \ প্লাগইনস \ প্ল্যাটফর্মগুলি যেমন qwindows.dll সহ প্ল্যাটফর্মগুলি থেকে সরাসরি অনুলিপি করা ফোল্ডার" "
পরজীবী ১iet

@parasietje অ্যাপ qwindows.dllডিরেক্টরিতে খুঁজছেন platforms। আমি এটি পোস্ট করেছি কারণ আমি এটি স্থির করেছি। ডাউনটোটের আগে আপনি কি পরীক্ষা নিচ্ছেন?
কুনমিং জিগি

আপনার উত্তরটি মূল প্রশ্নের উত্তর দেয় না। আপনার উত্তরটি এমন কিছু প্রস্তাব দেয় যা মূল পোস্টার ইতিমধ্যে চেষ্টা করেছে।
পরজীবী

3

আমি আর একটি সমাধান খুঁজে পেলাম। অ্যাপ্লিকেশন ফোল্ডারে যেমন qt.conf তৈরি করুন:

[Paths]
Prefix = .

এবং তারপরে অ্যাপ্লিকেশন ফোল্ডারে প্লাগইন ফোল্ডারটি অনুলিপি করুন এবং এটি আমার পক্ষে কাজ করে।


ঠিক আছে, আমি একটি মিনিজিডব্লিউ, সিএমকে, কিউটি 5.12-এনভায়রনমেন্টে আছি, যেখানে উইন্ডোপ্লাই-সরঞ্জামকে আকর্ষণীয় করা সম্ভব নয়। প্ল্যাটফর্ম-ফোল্ডারটি সেখানে ছিল, কিন্তু কার্যকর হয়নি। এটি Qt-lib এর সাথে প্রতিস্থাপন করলেও কোনও লাভ হয়নি। আপনার কৌশলটি ব্যবহার করে স্থির করা হয়েছে (ফোল্ডারটি অনুলিপি করার পরে)। ধন্যবাদ!
মার্সেল পেট্রিক

2

এই উত্তরগুলির বেশিরভাগটিতে ভাল (সঠিক) তথ্য রয়েছে তবে আমার ক্ষেত্রে এখনও কিছু অনুপস্থিত ছিল।

আমার অ্যাপ্লিকেশনটি একটি গ্রন্থাগার (dll) হিসাবে নির্মিত এবং অ-Qt অ্যাপ্লিকেশন দ্বারা কল করা হয়েছে। আমি windeployqt.exeইনস্টল ডিরেক্টরিতে Qt dlls, প্ল্যাটফর্ম, প্লাগইন, ইত্যাদি স্থাপন করতাম, তবে এটি প্ল্যাটফর্মটি এখনও খুঁজে পেল না। কিছু পরীক্ষা-নিরীক্ষার পরে, আমি বুঝতে পারলাম অ্যাপ্লিকেশনটির ওয়ার্কিং ডিরেক্টরিটি অন্য একটি ফোল্ডারে সেট করা আছে। সুতরাং, আমি যে ডিরেক্টরিতে dll "বাস করতাম" তা দখল করেছিলাম GetModuleHandleExAএবং রানটাইম ব্যবহারের সময় সেই ডিরেক্টরিটি Qt লাইব্রেরির পাথে যুক্ত করেছিলাম

QCoreApplication::addLibraryPath(<result of GetModuleHandleExA>);

এটি আমার পক্ষে কাজ করেছে।


2

আমার জন্য সমাধানটি ছিল PATHভেরিয়েবলটি সংশোধন করা । এটিতে প্রথম পথগুলির মধ্যে একটি হিসাবে অ্যানাকোন্ডা 3 \ লাইব্রেরি \ বিন ছিল। এই ডিরেক্টরিতে কিছু কিউটি লাইব্রেরি রয়েছে তবে সমস্ত নয়। স্পষ্টতই, এটি একটি সমস্যা। মুভিং সি: \ প্রোগ্রামস \ কিউটি \ 5.12.3 \ এমএসভিসি २०१7_64৪ \ সামনে PATHআমার কাছে সমস্যার সমাধান to


1

কিউটি 5.6, অ্যানাকোন্ডা ৪.৩.২৩, পাইথন ৩.৩.২ এবং পাইস্টালার ৩.৩ ব্যবহার করার সময় আমার এই সমস্যা হয়েছিল। আমি কিউটিক্রিটর ব্যবহার করে একটি ইন্টারফেস তৈরি করে পাইথন প্রোগ্রাম তৈরি করেছিলাম, তবে এটি অন্য কম্পিউটারে স্থাপন করতে হয়েছিল, সুতরাং পাইনস্টলারের সাহায্যে আমার মৃত্যুদন্ড কার্যকর করা দরকার।

আমি নীচের পরিবেশের ভেরিয়েবলগুলি সেট করে দিলে আমার কম্পিউটারে সমস্যাটি সমাধান হয়ে গেছে:

QT_QPA_PLATFORM_PLUGIN_PATH:% QTDIR% \ প্লাগইন \ প্ল্যাটফর্মগুলি \

কিটিটিডিআর: সি: \ মিনিকোন্ডা 3 \ pkgs \ qt-5.6.2-vc14_3 _3 গ্রন্থাগার

তবে এই সমাধানটি কেবলমাত্র আমার পিসিতেই কাজ করেছিল যা এই ফোল্ডারে কনডা এবং কিউটি ইনস্টল ছিল।

এটি সমাধান করতে এবং যে কোনও কম্পিউটারে এক্সিকিউটেবল কাজটি করতে, আমাকে নীচের লাইনটি অন্তর্ভুক্ত করার জন্য ".spec" (পাইনস্টলারের দ্বারা তৈরি প্রথম ফাইল) সম্পাদনা করতে হবে:

ডেটাস = [('সি: \ মিনিকোন্ডা 3 \ পিকিগস \ কিউটি -5.6.2-ভিসি 14_3 \ লাইব্রেরি \ প্লাগইনস \ প্ল্যাটফর্মগুলি।। ডিএল', 'প্ল্যাটফর্ম'),]

এই সমাধানটি জিম জি এবং ক্রিপলটেড টেবিলের উত্তরের ভিত্তিতে তৈরি


1

আমি একই সমস্যা ছিল এবং বেশ কয়েকটি জিনিস প্রয়োগ করে এটি সমাধান করেছি। প্রথমটি, যদি এটি কোনও প্রোগ্রাম হয় যা আপনি Qt দিয়ে করেছিলেন।

"C: \ Qt \ Qt5.10.0 \ 5.10.0 \ msvc2017_64 \ প্লাগইনস" এর ফোল্ডারে (আমার ক্ষেত্রে) আপনি অন্য ফোল্ডারগুলি খুঁজে পান, তার মধ্যে একটি "প্ল্যাটফর্ম"। আপনার "এক্স এক্সিকিউটেবলের" পাশে "প্ল্যাটফর্মগুলি" ফোল্ডারটি অনুলিপি করতে চলেছে। এখন, আপনি যদি 0xc000007d ত্রুটিটি পান তবে তা হ'ল আপনি যে সংস্করণটি অনুলিপি করেননি, যেহেতু এটি 32 বীট বা 64 হতে পারে।

আপনি যদি ত্রুটিগুলি চালিয়ে যান তবে আপনার আরও লাইব্রেরির অভাব রয়েছে। "নির্ভরতা ওয়াকার" প্রোগ্রামের সাহায্যে আপনি কিছু হারিয়ে যাওয়া ফোল্ডার সনাক্ত করতে পারেন। অবশ্যই এটি আপনাকে নির্দেশ করবে যে আপনার একটি এনভিআইডিএ। ডিএল প্রয়োজন এবং এটি আপনাকে অবস্থানটি বলে।

"ডিপেন্ডেন্সি ওয়াকার" ব্যবহার না করে অন্য একটি উপায় হ'ল আপনার এক্সিকিউটেবল ফাইলের পাশের "সি: \ উইন্ডোজ \ সিস্টেম 32" ফোল্ডার থেকে সমস্ত .dll অনুলিপি করা। আপনার .exe কার্যকর করুন এবং যদি সবকিছু ভালভাবে লোড হয়, তাই আপনার dll লাইব্রেরিতে আপনার প্রয়োজন বা ব্যবহারের প্রয়োজন নেই, আপনার সমস্ত বিকল্প সহ .exe প্রোগ্রামটি ব্যবহার করুন এবং .exe বন্ধ না করে আপনি যা করেন তা সমস্ত মুছে ফেলবে। dll যে আপনি কেবল .exe এর পাশে অনুলিপি করেছেন, সুতরাং যদি সেগুলি .dll আপনার প্রোগ্রাম দ্বারা ব্যবহৃত হয় তবে সিস্টেমটি আপনাকে মুছে ফেলতে দেবে না, কেবল প্রয়োজনীয়গুলি অপসারণ করে।

আমি আশা করি এই সমাধানটি আপনাকে পরিবেশন করে।

মনে রাখবেন যে যদি আপনার অপারেটিং সিস্টেমটি 64 বিট হয় তবে গ্রন্থাগারগুলি সিস্টেম 32 ফোল্ডারে থাকবে এবং যদি আপনার অপারেটিং সিস্টেমটি 32 বিট হয় তবে সেগুলি সিস্টেম 32 ফোল্ডারেও থাকবে। এটি ঘটে যাতে 64-বিট কম্পিউটারে 32 বিটযুক্ত প্রোগ্রামগুলির সাথে কোনও সামঞ্জস্যের সমস্যা না হয়। SysWOW64 ফোল্ডারে ব্যাকআপ হিসাবে 32-বিট ফাইল রয়েছে।


এটি কাজ করে তবে এটি একটি অস্থায়ী সমাধানের মতো। প্ল্যাটফর্ম ফোল্ডারটি অনুলিপি করার প্রয়োজন নেই এমন কিছু করা কি সম্ভব?
ওলেগ ইয়াবলোকভ

0

একটি মিনিজিডব্লিউ প্ল্যাটফর্মের জন্য এবং আপনি সিএমকেলিস্টস টেক্সট লিখিত অ্যাডহাক দিয়ে একটি ডিবাগ টার্গেট সংকলন করছেন যদি আপনার পাশাপাশি প্ল্যাটফর্মের ডিয়ারে qwindows.dll যুক্ত করা দরকার। উইন্ডোপ্লায়িক্ট এক্সিকিউটেবল তার কাজটি ভাল করে তবে এটি মনে হয় যে কোনও অদ্ভুত কারণে সিএমকে বিল্ডটিরও মুক্তির বৈকল্পিক প্রয়োজন। সংক্ষেপে আপনার প্ল্যাটফর্ম ডিরেক্টরিতে qwindows.dll এবং qwindowsd.dll উভয়ই রাখা ভাল। কিউটিক্রিটরে সিএমকে প্রকল্প আমদানি করার পরে বিল্ড পদ্ধতিটি চালানোর সময় আমি একই অদ্ভুত ফলাফলটি লক্ষ্য করিনি। কমান্ড লাইনে সংকলন সিএমকে প্রকল্পটি মনে হচ্ছে qwindows.dll নির্ভরতা ট্রিগার করে যদি হয় ডিবাগ টার্গেটের জন্য সঠিক একটিটি সেট করা হয় (qwindowsd.dll)


0

এই ব্যাচের ফাইলটি ব্যবহার করুন: রানউইথকিউটি.বাট

@echo off
set QTDIR=C:\Qt\Qt5.1.1\5.1.1\msvc2012\bin
set QT_QPA_PLATFORM_PLUGIN_PATH=%QTDIR%\plugins\platforms\
start %1
  • এটি ব্যবহার করতে, আপনার gui.exe ফাইলটি টানুন এবং এটি এক্সপ্লোরারটিতে রানউইথকিউটি.ব্যাটের উপর ফেলে দিন,
  • অথবা RunWithQt gui.exeকমান্ড লাইন থেকে কল করুন

0

যদি আপনি অ্যানাকোন্ডা ইনস্টল করে থাকেন তবে আমি এটি আনইনস্টল করার জন্য এবং উত্স থেকে পাইথন প্যাকেজ ইনস্টল করার চেষ্টা করব, আমি এই সমস্যাটি এইভাবে স্থির করেছি


0

আবেদন qtbase / বিন / windeployqt.exe স্বয়ংক্রিয়ভাবে আপনার আবেদন স্থাপন। আপনি যদি সঠিকভাবে সেট এনভায়রেন্সমেন্টভেরিয়েবলগুলির সাথে কোনও প্রম্পট শুরু করেন তবে এটি বর্তমান ডিরেক্টরিতে মোতায়েন করে। আপনি লিপির উদাহরণ খুঁজে পান:

@echo off
set QTDIR=E:\QT\5110\vc2017

set INCLUDE=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\ATLMFC\include;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\include;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\cppwinrt

set LIB=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\ATLMFC\lib\x86;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.14393.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.14393.0\um\x86;

set LIBPATH=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\ATLMFC\lib\x86;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.17134.0;C:\ProgramFiles (x86)\Windows Kits\10\References\10.0.17134.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;

Path=%QTDIR%\qtbase\bin;%PATH%
set VCIDEInstallDir=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\
set VCINSTALLDIR=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\
set VCToolsInstallDir=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\
set VisualStudioVersion=15.0
set VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
set VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
set VS120COMNTOOLS=S:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
set VS150COMNTOOLS=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\
set VS80COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\
set VS90COMNTOOLS=c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\
set VSINSTALLDIR=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
set VSSDK110Install=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VSSDK\
set VSSDK150INSTALL=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VSSDK
set WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata;C:\Program Files (x86)\Windows Kits\10\References
set WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\
set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
set WindowsSDKLibVersion=10.0.14393.0\
set WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.14393.0\
set WindowsSDKVersion=10.0.14393.0\
set WindowsSDK_ExecutablePath_x64=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\
set WindowsSDK_ExecutablePath_x86=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\

mkdir C:\VCProjects\Application\Build\VS2017_QT5_11_32-Release\setup
cd C:\VCProjects\Application\Build\VS2017_QT5_11_32-Release\setup
copy /Y ..\Release\application.exe .
windeployqt application.exe
pause

0

বলুন, আপনি কিছু সিজিএল-ডেমো পোর্টেবল রাখতে চেয়েছিলেন । সুতরাং আপনার কাছে একটি ফোল্ডার "সিজিএল" আছে এবং এতে, "লিবিব" নামে পরিচিত 1 টি সাবফোল্ডার: সিজিএল-ফোল্ডারের যে কোনও প্রোগ্রামের জন্য সমস্ত (সাধারণ) সাপোর্ট-ডলস এখানে যান। আমাদের উদাহরণস্বরূপ, এটি ডেল-ডাউনলোড হবে : কেবল "লিবিব" ডিরেক্টরিতে আনজিপ করুন। আরও আপনি ডেমোস-পৃষ্ঠায় স্ক্রোল করুন , সামগ্রীটি তত বেশি চিত্তাকর্ষক। আমার ক্ষেত্রে, পলিহেড্রন-ডেমোটি ঠিক মনে হয়েছিল। এটি যদি আমার 10+ ইও নোটবুকে চলে তবে আমি মুগ্ধ। সুতরাং আমি "সিবিএল" -ডাইরেক্টরিতে "লাইব" পাশাপাশি "ডেমো" ফোল্ডার তৈরি করেছি। এখন সেই ফোল্ডারে একটি .Cmd-file তৈরি করুন। আমি আমার নাম "পলিহেডন.কম।" সুতরাং আমাদের যেমন একটি ডিরেক্টরি কাঠামো আছে:

 CGAL - the bag for all the goodies
  lib - all libraries for all CGAL-packages
 demo - all the demos I'm interested in
[...] - certainly some other collections, several apps per folder...
Polyhedron.cmd - and a little script for every Qt-exe to make it truly portable.

এই ছোট্ট উদাহরণে, "পলিহেড্রন.কম।" নিম্নোক্ত পাঠ্য রয়েছে:

@echo off
set "me=%~dp0"
set PATH=%me%lib
set "QT_PLUGIN_PATH=%me%lib\plugins"
start /b "CGAL Polyhedron Demo" "%me%demo\polyhedron\polyhedron_3.exe"

স্পষ্টতই, সমস্ত স্ক্রিপ্টগুলি শেষ লাইনটি বাদ দিয়ে এক হতে পারে। একমাত্র সতর্কতা: "ডস-উইন্ডো" যতক্ষণ না আপনি আসল প্রোগ্রামটি ব্যবহার করেন ততক্ষণ খোলা থাকে। শেল-উইন্ডোটি বন্ধ করুন এবং আপনি * .exe কেও মেরে ফেলুন। আপনি যেখানেই "CGAL"-ফোল্ডারটি অনুলিপি করেছেন, অদ্ভুত "% ~ dp0" হিসাবে -আগ্রিগলে "cm" অনুসরণ করে আমরা শুরু * * সিএমডি-ফাইলের পুরো পথটি উপস্থাপন করে। সুতরাং "% me% lib" হ'ল সত্যিকারের লাইব্রেরির পুরো পথ (আমার ক্ষেত্রে "সিজিএল-লিব")। পরবর্তী 2 লাইন Qt- কে তার "রানটাইম" ফাইলগুলি কোথায় তা বলে। এটি উইন্ডোজ-কিউটি প্রোগ্রামের জন্য যে কোনও সংখ্যক * .dll এর জন্য কমপক্ষে "qwindows.dll" ফাইল হবে। যদি আমি সঠিকভাবে মনে রাখি, Dll- গ্রন্থাগারটি (অন্তত আমি এটি ডাউনলোড করার পরে) কিছুটা "বাগ" পেয়েছিলাম কারণ এতে "প্ল্যাটফর্ম" রয়েছে - এতে qwindows.dll সহ ডিরেক্টরি রয়েছে।"প্লাগইন" এ সরান । যদি কোনও Qt-app, যে কোনও Qt-app, "qwindows.dll" খুঁজে না পায়, এটি "উইন্ডোজ" খুঁজে পাবে না। এবং এটি এটি "প্লাগইনস" ডিরেক্টরিতে "প্ল্যাটফর্ম" নামে একটি ডিরেক্টরিতে প্রত্যাশা করে যা এটি ওএস দ্বারা চালিত হওয়াতে জানাতে হবে ... এবং যদি "QT_PLUGIN_PATH" আপনাকে ঠিক সমস্ত সহায়ককে নির্দেশ করে না তবে প্রয়োজন, কিছু কিউটি প্রোগ্রাম এখনও কোনও প্রোব ছাড়াই চলবে। এবং কিছু নিখোঁজ * .ডল সম্পর্কে অভিযোগ করেছেন যা আপনি কখনও শুনেন নি ...


0

কিউটি সংস্করণ 5.14.0 থেকে আসা যে কোনও ব্যক্তির জন্য, বাগের এই টুকরোটির স্ট্যাটামেন্টটি খুঁজে পেতে আমার 2 দিন সময় লেগেছে:

উইন্ডোপ্লেক্টটি MinGW QTBUG-80763 এর জন্য কাজ করে না 5.14.1 এ স্থির করা হবে

https://wiki.qt.io/Qt_5.14.0_Known_Issues

তাই সচেতন হতে হবে। মিনজিডাব্লু সহ উইন্ডোপ্লাইকিট ব্যবহার করা এখানে একই বর্ণিত ত্রুটি প্রদান করবে।

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