আমার অ্যাপ্লিকেশনটির সাথে ল্যাবসি-র কোন সংস্করণটি আমি কীভাবে খুঁজে পাব?


14

জি ++ ব্যবহার করে কোনও অ্যাপ্লিকেশন তৈরি করার সময়, আপনি অন্যান্য লাইব্রেরির (যেমন -lpthreadউদাহরণ হিসাবে পাস করার মতো ) একইভাবে লিঙ্ক করার জন্য আমি স্পষ্টতই লাইব্রেরিটি লাইব্রেরি হিসাবে পাস করছি না । আমি জানি যে libc এর নাম রয়েছে libc.so.6তবে আমি সচেতন যে এটি আসলে একটি লাইব্রেরি নয় বরং libc এর অন্য সংস্করণে যেমন পয়েন্টারের মতো কিছু (যেমন libc-2.15.so)। আমার প্রশ্নটি যদি আমার কম্পিউটারে libc এর একাধিক সংস্করণ থাকে তবে আমি কীভাবে বলতে পারি যে কোনটি আসলে এর মাধ্যমে লিঙ্ক হয়েছে libc.so.6

উত্তর:


16

lddআপনার পছন্দের হাতিয়ার হওয়া উচিত এটি আপনাকে ভাগ করা লাইব্রেরিটি আসলে সংযুক্ত করে।

confus@confusion:~/misc/test$ ldd -r -v testendian
    linux-vdso.so.1 =>  (0x00007fffbcfff000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1a5a4c5000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1a5a8a5000)

    Version information:
    ./testendian:
        libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
    /lib/x86_64-linux-gnu/libc.so.6:
        ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
        ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

Libc এর ক্ষেত্রে আপনি কেবল .soফাইলটি চালাতে পারেন এবং লাইব্রেরির সংস্করণটি তাকে বলা হবে।

confus@confusion:~/misc/test$ /lib/x86_64-linux-gnu/libc.so.6 
GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10) stable release version 2.15, by Roland McGrath et al.

আমি এলডিডি সম্পর্কে জানতাম, জানতাম না যে আপনি কেবল একটি লাইব্রেরি চালাতে পারবেন - ধন্যবাদ। দুর্ভাগ্যক্রমে লাইব্রেরিটি চালানো থেকে আমার আউটপুটটি সংস্করণটি দেখায় না ....
গণিতবিদ

আমি বোকা হয়ে যাচ্ছিলাম তা উপেক্ষা করুন - উত্তরের জন্য ধন্যবাদ!
গণিতবিদ

1
উত্তরের জন্য ধন্যবাদ. এলডিডি আউটপুট আমাকে যা বলেছে আপনি কি কিছু তথ্য সরবরাহ করতে পারেন? এর অর্থ কী এর testendianজন্য GLIBC_2.3 বা GLIBC_2.2.5 প্রয়োজন?
বোনানজা

আমি যুক্তিসঙ্গতভাবে নিশ্চিত, এর অর্থ হল যে প্রোগ্রামটির GLIBC 2.2.5 প্রয়োজন এবং গ্রন্থাগার লোডারটি ld-linux-x86-64 GLIBC_2.3 দিয়ে তৈরি হয়েছিল। উভয়ই একরকমভাবে। তবে লবণের এক দানা দিয়ে সেটিকে নিন, কারণ আমি কোনও উল্লেখ খুঁজে পাইনি।
কন-এফ-ব্যবহার করুন

ডায়নামিক এক্সিকিউটেবলের জন্য দুর্দান্ত কাজ করে, তবে স্থির ব্যক্তিদের পক্ষে এতটা না! (একটি সিসির সতর্কতার কারণে আমি কিসের সাথে লিঙ্ক করছি তা পরীক্ষা করা দরকার warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking:)
জেপফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.