เหตุใดจึงไม่มีไฟล์ไลบรารีติดตั้งสำหรับทดสอบ Google


54

ดูเหมือนว่าแพ็คเกจ libgtest-dev จะติดตั้งเฉพาะไฟล์ส่วนหัวไปยังระบบ แต่ไม่ใช่ไลบรารีแบบคงที่และแบบไดนามิกซึ่งควรติดตั้งภายใต้ / usr / lib

มันเป็นข้อบกพร่องหรือไม่?


2
เนื่องจากเป็นความตั้งใจจึงไม่ใช่ข้อผิดพลาด แต่สถานการณ์ก็สับสนอย่างที่สุด ดังนั้นผมจึงยื่นรายงานข้อผิดพลาดที่bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587
Joachim W

ใช่ ... กรอบการทดสอบของการเพิ่มประสิทธิภาพ "ทำงานได้หรือไม่"
Andrew Wagner

คำตอบ:


70

มันเป็นข้อบกพร่องหรือไม่?

ไม่มันเจตนา:

gtest (1.6.0-1ubuntu2) แม่นยำ; ความเร่งด่วน = ต่ำ

  * หยุดการกระจายไลบรารีแบบคงที่ (แม้ว่าจะยังคงสร้างมันเพื่อให้แน่ใจว่า gtest
    ผลงาน) อัพสตรีมแนะนำให้ต่อต้านการจัดส่ง libary เลยเพียงแค่
    แหล่ง (ดู: http://code.google.com/p/googletest/wiki/FAQ)
    ผู้ดูแล Debian วางแผนที่จะทำเช่นนี้ (ดู BTS: 639795); ทำมัน
    Ubuntu ตอนนี้เพื่อตอบสนองความต้องการ MIR

เพื่อสร้างห้องสมุดคงที่

cd / usr / src / gtest
sudo cmake
ทำ sudo
sudo mv libg * / usr / lib /

แก้ไข:

ชื่อมีการเปลี่ยนแปลงเล็กน้อยในช่วงหลายปีที่ผ่านมาแม้ว่ากระบวนการยังคงเหมือนเดิม ใน Ubuntu 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
eddyxu

1
Google ทำงานด้วยวิธีลึกลับ! :) ดีใจที่มันช่วย
ish

2
รุ่นคัดลอกวาง:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
exic

2
เหตุผลจริงที่อธิบายที่นี่สามารถนำไปใช้กับห้องสมุดใด ๆ ตัวอย่างเช่นหากการเชื่อมโยงบูสเตอร์กับ libstdc ++ และคุณต้องการใช้ libc ++ คุณจะต้องคอมไพล์บูสต์จากแหล่งที่มา ดังนั้นมันแปลก IMHO
ruslo

7
นี่คือสิ่งที่เลวร้าย ทำไมพวกเขาถึงไม่ยอมส่งไลบรารี่สำหรับแหล่งข่าว? หรืออย่างน้อยก็ให้ติดตั้งแพ็คเกจสร้างมันโดยอัตโนมัติ
ชื่อปลอม

23

การปรับปรุงคำตอบของ izx ฉันจะใช้ cmake ด้วยวิธีนี้:

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

โปรดทราบว่าวิธีที่แนะนำโดย google คือให้โครงการที่มีอยู่ของคุณดึงซอร์สโค้ด gtest

อีกวิธีหนึ่งคือเมื่อใช้กับ CMake คุณสามารถใช้add_subdirectoryเพื่อเพิ่มแหล่ง gtest ที่มาพร้อมกับเพราะมันเป็นค่าเริ่มต้นที่จะเข้าสู่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.