গুগল পরীক্ষার জন্য কেন কোনও লাইব্রেরি ফাইল ইনস্টল করা হয়নি?


54

Libgtest-dev প্যাকেজটি সিস্টেমে কেবলমাত্র শিরোনাম ফাইল ইনস্টল করে, তবে / usr / lib এর অধীন ইনস্টল করা উচিত এমন স্ট্যাটিক এবং ডায়নামিক লাইব্রেরি নয়।

এটা কি বাগ?


2
যেহেতু এটি উদ্দেশ্যমূলক, এটি কোনও বাগ নয়; তবুও পরিস্থিতি পুরোপুরি বিভ্রান্তিকর। অতএব আমি bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587 এ একটি বাগ রিপোর্ট দায়ের করেছি
জোছিম ডব্লু

উগ ... বুস্টের পরীক্ষার কাঠামো "স্রেফ কাজ করে"?
অ্যান্ড্রু ওয়াগনার

উত্তর:


70

এটা কি বাগ?

না, এটি ইচ্ছাকৃত:

গেস্ট (1.6.0-1ubuntu2) সুনির্দিষ্ট; জরুরি = কম

  গেস্ট নিশ্চিত করতে স্ট্যাটিক লাইব্রেরি বিতরণ বন্ধ করুন (যদিও এটি এখনও এটি নির্মাণ করে)
    কাজ)। প্রবাহ কেবলমাত্র লিবারি শিপিংয়ের বিরুদ্ধে সুপারিশ করে
    উৎস. (দেখুন: http://code.google.com/p/googletest/wiki/FAQ)
    দেবিয়ান রক্ষণাবেক্ষণকারীও এটি করার পরিকল্পনা করছেন (বিটিএস: 639795 দেখুন); এটা করতে
    উবুন্টু এখন এমআইআর প্রয়োজনীয়তা পূরণ করতে।

স্ট্যাটিক লাইব্রেরি তৈরি করা

সিডি / ইউএসআর / এসসিআর / গেস্ট
sudo cmake।
সুডো মেক
সুডো এমভি লিবিগ * / ইউএসআর / লিবিব /

সম্পাদনা:

নামগুলি বছরগুলিতে কিছুটা পরিবর্তিত হয়েছে, যদিও প্রক্রিয়াটি একই রয়েছে remains উবুন্টু 17.04 এ:

sudo apt-get install libgtest-dev
cd /usr/src/googletest/googletest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo cp libgtest* /usr/lib/
cd ..
sudo rm -rf build

ধন্যবাদ! আমি এইভাবে গ্রন্থাগারগুলি তৈরি করেছি। কেবল ভেবেছিলেন এটি একটি .deb প্যাকেজের জন্য অফিসিয়াল পদ্ধতির নাও হতে পারে ।
এডিডেক্সু

1
গুগল রহস্যজনক উপায়ে কাজ করে! :) আনন্দিত এটি সাহায্য করেছে।
ইশ

2
অনুলিপি-সংস্করণ:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
এক্সিক

2
এখানে বর্ণিত কারণটি যে কোনও লাইব্রেরিতে প্রয়োগ করা যেতে পারে । উদাহরণস্বরূপ, যদি বুস্টকে লিবিস্টডিসি ++ এর সাথে যুক্ত করা হয় এবং আপনি libc ++ ব্যবহার করতে চান তবে আপনাকে উত্স থেকে বুস্টটি পুনরায় কম্পাইল করতে হবে। সুতরাং এটি আশ্চর্যজনক, আইএমএইচও
রোস্লো

7
এটি হ'ল আসিনিন ফ্রেইকিং। তারা কেন উত্সটির জন্য লাইব্রেরিটি জাহাজে পাঠাবে না? অথবা কমপক্ষে প্যাকেজ ইনস্টলটি এটি স্বয়ংক্রিয়ভাবে তৈরি করুন।
ভুয়া নাম

23

ইওএক্সএক্স এর উত্তরের উপর উন্নতি করা আমি এইভাবে চক্রটি ব্যবহার করতে পারতাম:

sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .

এবং আমি একটি বাহ্যিক উত্স বিল্ড চেষ্টা করব:

cd /tmp
mkdir .build
cd .build
cmake -DCMAKE_BUILD_TYPE=RELEASE /usr/src/gtest/
make
sudo mv libg* /usr/lib/

0

নোট করুন যে গুগল দ্বারা প্রস্তাবিত উপায়টি হল আপনার বিদ্যমান প্রকল্পটি গেমস্টের উত্স কোডটি টানতে হবে।

বিকল্পভাবে, সিএমকে সাথে ব্যবহার করার সময়, আপনি পূর্বনির্ধারিতভাবে প্রবেশের পরে add_subdirectoryযে গেমটি উত্সটি এসেছিলেন তা যুক্ত করতে ব্যবহার করতে পারেন ।libgtest-dev/usr/src/googletest

নিম্নলিখিত কাজ করবে

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