2012-07-28 22 views
6

मैं विंडोज़ को क्रॉस-कंपाइल करने के लिए लिनक्स पर मिनीजीडब्लू का उपयोग कर रहा हूं। वह काम करना एक हवा था। आवश्यक डीएलएल के साथ इसे पैक करना काफी सरल नहीं था। इस समय समाधान विंडोज पर निष्पादन योग्य चलाने और डीएलएल पर कॉपी होने तक वास्तव में चलता है।लिनक्स पर एक विन एक्सई की आवश्यकता वाले डीएलएल ढूंढना (मिंगव के साथ संकलित)?

क्या लिनक्स के लिए कोई उपकरण है जो मेरे विंडोज़.एक्सई द्वारा आवश्यक डीएलएल सूचीबद्ध करता है? (ldd और निर्भरता वाल्कर के संयोजन की तरह कुछ।)

+0

किसी भी कारण से निर्भरता वॉकर आपके लिए पर्याप्त नहीं है? यह एक्सई द्वारा आवश्यक सभी डीएलएस के साथ-साथ उन लोगों को सूचीबद्ध करता है जो अभी तक पथ में नहीं पाए गए हैं। – Pankaj

+0

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

उत्तर

9

देर 2015 तक कोई टूलचैन उपयोगिता नहीं है जो विंडोज़ बाइनरी (जैसे कि लड या ओटोल) के लिए गतिशील निर्भरताओं को सूचीबद्ध करने में सहायता करती है।

मेरे परीक्षण से, एक पूर्ण निर्भरता सूची आमतौर पर की तरह कुछ के साथ देखा जा सकता है:

strings MY.EXE | grep -i '\.dll$' 

hackish, लेकिन यह हमेशा मेरे लिए काम किया है।

एक पूर्ण उदाहरण के लिए, try this script मैं लिनक्स पर अपने क्रॉस पर्यावरण में उपयोग करता हूं।

+3

मैंने अभी [एक छोटा प्रोग्राम बनाया है ('peldd')] (https://github.com/gsauthof/pe-util) जो कि पोर्टेबल निष्पादन योग्य (पीई) के डेटा संरचनाओं को सही ढंग से पढ़ता है गतिशील निर्भरता। यह पे-पार्स लाइब्रेरी का उपयोग करता है। 'स्ट्रिंग्स' विधि एक अच्छा पहला ऑर्डर सन्निकटन है, लेकिन आश्चर्य की बात नहीं है कि झूठी-सकारात्मक प्राप्त करना आसान है। – maxschlepzig

+1

@ h0tw1r3, आपकी पाइपलाइन लगभग सही है। सही ढंग से '।' से बचने के लिए कमांड लाइन पर, आपको '\' से बचने की ज़रूरत है, अन्यथा grep '.dll $' को फिर से देखेंगे। – jeff6times7