วิธีการสร้าง cmake-gui บน Linux จากแหล่งที่มา?


คำตอบ:


6

สองตัวเลือกที่นี่:

  • cmake-guiเป็นแพคเกจเป็น CMake-QT-GUI ติดตั้งด้วย:

    sudo apt-get install cmake-qt-gui
    
  • หากคุณต้องการสร้างจากแหล่งที่มาให้ทำดังต่อไปนี้:

    sudo apt-get update
    sudo apt-get build-dep cmake-qt-gui
    wget https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz
    
    tar -xzf cmake-3.11.0.tar.gz
    cd cmake-3.11.0/
    ./configure --qt-gui
    make -j5
    bin/cmake-gui
    

2
ไม่แพคเกจประกอบด้วย cmake ที่ล้าสมัยซึ่งไม่สนับสนุนการเพิ่ม 1.66 เช่น ...
stiv

5
การติดตั้งcmake-qt-guiด้วย apt หลังจากรวบรวมcmakeจากแหล่งข้อมูลจะทำให้เกิดข้อผิดพลาดดังต่อไปนี้:Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: cmake-qt-gui : Depends: cmake (= 3.5.1-1ubuntu3) E: Unable to correct problems, you have held broken packages.
sk

2

ไม่มีอะไรขึ้นอยู่กับ cmake (อาจ) ดังนั้นจึงเป็นโหนดใบ ถอนการติดตั้ง deb รับแหล่งข้อมูลล่าสุดจากhttps://cmake.org/และแกะ tarball ที่ใดที่หนึ่ง

./bootstrap --qt-gui
make
make install

สมมติว่าคุณติดตั้งอุปกรณ์ QT dev คุณจบลงด้วย cmake บรรทัดคำสั่งปกติและ cmake-qui เริ่มจากบรรทัดคำสั่งโดยพิมพ์ cmake หรือ cmake-gui ฉันไม่รู้เกี่ยวกับการเพิ่มเมนู


0

กระบวนการ

  • ในกระบวนการนี้โดยเฉพาะฉันตัดสินใจที่จะกำหนดค่าเวอร์ชันล่าสุดของ cmake ด้วยเวอร์ชัน aake ของ cmake (ขออภัยถ้านี่สับสน)

  • cmake-gui ถูกคอมไพล์ด้วยที่เก็บเดียวกันกับเครื่องมือบรรทัดคำสั่ง cmake แต่การกำหนดค่าการสร้างเริ่มต้นสำหรับ cmake ไม่ได้ถูกตั้งค่าเพื่อสร้าง cmake-gui (ไม่ใช่อินเตอร์เฟส curses หรืออินเตอร์เฟส Qt)

  • หากต้องการสร้าง cmake ด้วย cmake-gui จำเป็นต้องตั้งค่าตัวแปรบางอย่างในสคริปต์สร้างของ cmake ปกติคุณอาจทำสิ่งนี้ผ่าน UI แต่ก็เป็นไปได้ที่จะตั้งค่าตัวแปรเหล่านี้ด้วยการแก้ไข CMakeCache.txt ในไดเรกทอรีสร้างซึ่งเป็นสิ่งที่ฉันจะแสดงวิธีทำในคำตอบนี้ด้วยตนเอง

  • CMake ต้องการ Qt แต่ไม่สามารถค้นหาได้โดยอัตโนมัติสิ่งหนึ่งที่เราต้องทำคือแสดงว่าสคริปต์ Qt CMake อยู่ที่ใด

1. ติดตั้ง Qt (ถ้าคุณยังไม่มี)

  • ดาวน์โหลดโปรแกรมติดตั้งจากเว็บไซต์ของ Qt ในกรณีของฉันฉันเลือกเวอร์ชันล่าสุดของ 5.12 (ณ เวลาที่เขียน 5.12.7) และฉันติดตั้งพร้อมการตั้งค่าเริ่มต้นทั้งหมด

  • คุณจะต้องสร้างบัญชีด้วย Qt เพื่อดาวน์โหลดตัวติดตั้งโดยใช้วิธีนี้ บัญชีฟรีสำหรับผู้ใช้โอเพ่นซอร์ส (ซึ่งคุณเป็นถ้าคุณใช้สิ่งนี้เพื่อสร้าง cmake สำหรับการใช้งานของคุณเองหากคุณวางแผนที่จะใช้ Qt เพื่อสิ่งอื่นคุณควรตรวจสอบว่าคุณสามารถใช้เวอร์ชันนี้ได้หรือไม่)

  • ฉันติดตั้ง Qt ไปยังโฟลเดอร์ชื่อ Qt ในโฮมไดเร็กตอรี่ของฉัน

  • กระบวนการติดตั้งนี้จะใช้เวลาสักครู่

  • ฉันคิดว่า Qt อาจใช้งานได้ผ่าน apt แต่สำหรับวัตถุประสงค์ของฉันฉันต้องการดาวน์โหลดแบบเต็มสำหรับโครงการอื่นดังนั้นฉันจึงมีที่นี่ต่อไป

2. git โคลนแหล่งที่มา cmake จากที่เก็บ gitของพวกเขาไปที่อื่น (เช่นไดเรกทอรีบ้านของคุณ)

git clone https://gitlab.kitware.com/cmake/cmake.git

3. สร้างไดเรกทอรีสร้าง

cd cmake
mkdir build
cd build
cmake ..

ซึ่งจะทำให้ไฟล์ชื่อ CMakeCache.txt ในโฟลเดอร์บิลด์ของคุณ

4. แก้ไข CMakeCache.txt เพื่อกำหนดค่า UI

  • เปิดไฟล์นี้ในโปรแกรมแก้ไขข้อความของคุณและแก้ไขบรรทัดต่อไปนี้เพื่อเปิดใช้งาน qt ui (ฉันพบไฟล์เหล่านี้โดยค้นหา qt)

  • โปรดทราบว่าคุณต้องแทนที่ PATH_TO_QT ด้วยตำแหน่งที่ไดเรกทอรี qt ของคุณในกรณีของฉัน PATH_TO_QT เป็นเพียง / home / myname / Qt

  • ฉันจะแนะนำไม่ให้ใช้เส้นทางญาติหรือ ~
//Build Qt dialog for CMake
BUILD_QtDialog:BOOL=ON

QT_QMAKE_EXECUTABLE:FILEPATH=PATH_TO_QT/5.12.7/gcc_64/bin/qmake

//The directory containing a CMake configuration file for Qt5Core.
Qt5Core_DIR:PATH=PATH_TO_QT/5.12.7/gcc_64/lib/cmake/Qt5Core

//The directory containing a CMake configuration file for Qt5Widgets.
Qt5Widgets_DIR:PATH=PATH_TO_QT/5.12.7/gcc_64/lib/cmake/Qt5Widgets

5. เรียกใช้ cmake อีกครั้ง .. ในไดเรกทอรีการสร้าง

cmake ..

6. รวบรวม cmake (ในไดเรกทอรีสร้าง)

ที่ N make -j10คือจำนวนของแกนคุณต้องการที่จะรวบรวมในกรณีของฉันฉันพิมพ์

make -jN

7. ติดตั้ง cmake ที่สร้างขึ้น

  • คุณอาจถูกล่อลวงให้ลบรุ่น apt ของ cmake ก่อนทำเช่นนี้ แต่ปรากฏว่า (ด้วยเหตุผลบางอย่าง) ส่วนการติดตั้งของ cmake ต้องติดตั้ง cmake เพื่อ ... ติดตั้ง cmake
sudo make install

8. การดำเนินงานขั้นสุดท้าย

  • sudo make install ไม่ได้แทนที่รุ่น cmake ที่เก็บไว้ใน / usr / bin ขออภัย

  • อาจมีวิธีที่สะอาดกว่าเพื่อทำตามขั้นตอนนี้

  • ใช้cmake --versionเพื่อตรวจสอบว่าคุณจำเป็นต้องทำสิ่งนี้หรือไม่ถ้ามันให้รุ่นที่มาพร้อมกับ apt (สำหรับฉันในเวลาที่เขียน 3.10.2) คุณจะต้องทำสิ่งนี้

  • คุณควรตรวจสอบว่ารุ่น cmake ของคุณอยู่ใน / usr / local / bin /

ฉันต้องการทำสิ่งต่อไปนี้:

เปลี่ยนชื่อฉลาด cmake ไบนารี

sudo mv /usr/bin/cmake /usr/bin/cmake_old

เชื่อมโยงรุ่น cmake ที่เราสร้างขึ้นเข้ากับ / usr / bin /

sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
  • ฉันไม่ได้คาดหวังว่าจะต้องเชื่อมโยงรุ่นใหม่ของ cmake เข้ากับ / usr / bin / เนื่องจาก / usr / local / bin ควรอยู่ใน PATH ด้วยเหตุผลบางอย่างมันจะมองหา cmake ใน / usr / bin อย่างดื้อรั้นและให้ข้อผิดพลาดกับฉันว่าไม่พบ / usr / bin / cmake แม้ว่าเวอร์ชั่นล่าสุดของ cmake จะมีอยู่ใน / usr / local / bin

  • ฉันเดาว่าอาจเป็นไปได้ว่าการรีเซ็ต bash หรือ reboot อาจแก้ไขความต้องการในการลิงก์ แต่ฉันไม่แน่ใจ

พิมพ์cmake-guiเพื่อเริ่ม UI

ภาพหน้าจอของ cmake-gui

เย็น!

หมายเหตุ

  • ทดสอบกับ Ubuntu Mate 18.04.1 x86_64
  • รุ่น Cmake ที่ฉันพยายามจะติดตั้ง: การกระทำนี้ไม่มีความหมายเฉพาะกับเรื่องนี้ฉันเพิ่งโคลนล่าสุด

  • มันเป็นความเห็นของฉันว่าวิธีนี้จะใช้ได้ถ้าคุณใช้ cmake รุ่น apt เพื่อกำหนดค่าเวอร์ชันล่าสุดของ cmake ในระหว่างกระบวนการทั้งหมดนี้ หากวิธีนี้ใช้ไม่ได้ผลโปรดแจ้งให้เราทราบในความคิดเห็น

  • ในกรณีของฉัน (เช่น OP) ฉันกำลังมองหาที่จะกลับไปและสร้าง cmake-gui หลังจากติดตั้งอาคาร cmake รุ่นล่าสุดจากแหล่งที่มาแล้ว
  • ดังนั้นในโอกาส (IMO ไม่น่า) ที่ส่วนของสคริปต์ที่สร้าง cmake-gui ต้องการรุ่นล่าสุดของ cmake เพื่อสร้าง cmake แต่ส่วนที่เหลือของการสร้างนั้นตกลงกับรุ่น apt เพื่อทำซ้ำขั้นตอนที่ฉันทำ ที่นี่คุณสามารถสร้าง cmake ด้วยเวอร์ชัน apt จากนั้นกำหนดค่าใหม่ด้วย cmake รุ่นที่สร้างล่าสุดและสร้างอีกครั้ง

ไม่มีคำใบ้ภาษา cmake ฉันใช้การไฮไลต์ C ฉันเดาว่ามันจะดีกว่าไม่มีอะไร
jrh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.