בנייה מהמקור OR-כלים C++ ב-Linux

מבוא

המדריך הזה מסביר איך לפתח מכלי OR-Tools, עם תמיכה ב-C++, ב-Linux.

אלא אם אתם מתכננים לשנות את קוד המקור או להשתמש בכלי של צד שלישי לפתרון באמצעות OR-Tools, מומלץ התקנת החבילה.

יכול להיות שההוראות האלה יפעלו גם בגרסאות אחרות של Linux, אבל בדקנו אותן רק במכונות שעומדות בדרישות הבאות:

  • Alpine Edge בגרסת 64 ביט (x86_64)
  • Centos 7 LTS בגרסת 64 סיביות (x86_64)
  • Debian SID של 64 סיביות (x86_64)
  • Debian 11 (bullseye) ב-64 סיביות (x86_64)
  • Fedora 38 ב-64 סיביות (x86_64)
  • Fedora 37 ב-64 סיביות (x86_64)
  • OpenSuse Leap 64-bit (x86_64)
  • Ubuntu 23.10 ב-64 סיביות (x86_64)
  • Ubuntu 22.04 LTS ב-64 סיביות (x86_64)
  • Ubuntu 20.04 LTS בגרסת 64 סיביות (x86_64)

דרישות מוקדמות

הקטעים הבאים מתארים את הדרישות המוקדמות להתקנת OR-כלים.

כלי C++

כדי להתקין כלי C++, פתחו חלון מסוף ומזינים:

Alpine

apk add alpine-sdk linux-headers cmake lsb-release-minimal

סנטוס

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core

Debian

sudo apt update
sudo apt install -y build-essential cmake lsb-release

פדורה

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

פדורה

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

OpenSUSE

sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

איך מורידים את קוד המקור

יש שתי הסתעפויות נפרדות לקוד המקור של OR-Tools ב-GitHub: stable ו-main.

ההסתעפות stable נבדקה באופן יסודי, והיא אמורה לפעול בצורה חלקה בכל הפלטפורמות הנתמכות.
ההסתעפות main היא המקום שבו הוחלו העדכונים והשיפורים האחרונים. הוא עדכני יותר אבל פחות יציב.

הורדת קוד המקור היציב

ניתן לקבל את קוד המקור היציב עבור כלי OR באחת מהדרכים הבאות:

  • משכפלים את ההסתעפות stable על ידי הזנת:

    git clone https://github.com/google/or-tools
    
  • לוחצים על הלחצן Clone or download ב-GitHub כדי להוריד את הגרסה האחרונה בקובץ דחוס.תמונה של שכפול או לחצן הורדה

מורידים את קוד המקור הראשי

כדי לאחזר את קוד המקור מההסתעפות main, מזינים:

git clone -b main https://github.com/google/or-tools

הורדת גרסאות קודמות

אפשר לקבל את קוד המקור של גרסאות קודמות באחת מהדרכים הבאות:

  • הורדת גרסה קודמת מדף הגרסה של GitHub.
  • בהנחה שכבר יצרתם מאגר מקומי (על ידי git clone), תוכלו לבדוק גרסה ספציפית באמצעות תג של Git. לדוגמה, כדי לעבוד עם גרסה 9.9 במקום עם ההסתעפות main, מזינים את הפקודות הבאות במאגר המקומי:

    git fetch --all --tags --prune
    git checkout tags/v9.9 -v v9.9
    

מגדירים את ה-build

לפני שיוצרים כלי OR-Tools, צריך להגדיר את מחולל המערכת של CMake build.

פותחים טרמינל ומנווטים לספרייה שממנה חילצתם את הקבצים. בשלב הבא מזינים:

cmake -S . -B build -DBUILD_DEPS=ON

לפרטים נוספים, אפשר לעיין במסמכי התיעוד של CMake.

שימוש ב-SCIP

החל מגרסה 7.8, SCIP משולב כעת כך שלא יהיה צורך להתקין אותו באופן ידני.

שימוש ב-Gurobi

Gurobi משולב מראש. בעת הצורך, בזמן הריצה, OR-Tools יחפש את הספרייה המשותפת Gurobi בנתיב ההתקנה המוגדר כברירת מחדל של מנהלי ההתקנה של Gurobi ב-MAC OS X וב-Windows, או באמצעות משתנה הסביבה GUROBI_HOME.

שימוש בכלי אופציונלי של צד שלישי לפתרון MIP

תוכלו גם להשתמש בכלי OR-Tools עם כל אחד מפותרי ה-MIP האופציונליים הבאים של צד שלישי שהתמיכה בהם מושבתת כברירת מחדל:

לפרטים נוספים, קראו את התיעוד הזה.

יצירת קוד המקור

כדי ליצור את קוד המקור, פותחים טרמינל ועוברים לספרייה שממנה חילצתם את הקבצים. לאחר מכן מזינים את הפקודה הבאה כדי להדר את OR-Tools:

cmake --build build --config Release --target all -j -v

לפרטים נוספים, אפשר לעיין במסמכי התיעוד של CMake.

בדיקת קוד המקור

כדי לבדוק שהכול פועל כמו שצריך על ידי הזנת:

cmake --build build --config Release --target test -v

פעולה זו מפעילה דוגמאות עבור OR-Tools. אם הפעלתם את כל הדוגמאות, תוכלו להתחיל להשתמש ב-OR-Tools.

ניקוי קובצי ה-build

אם תצטרכו להתקין מחדש את OR-Tools, הפקודה:

rm -r build

המערכת תסיר את כל יחסי התלות המורכבים. אפשרות זו יכולה להיות שימושית אם אתם רוצים לאפס את המכשיר למצב נקי.

לאחר מכן, מזינים מחדש את הפקודות:

cmake -S . -B build -DBUILD_DEPS=ON

cmake --build build --config Release --target all -j -v

התקנת OR-Tools במערכת ההפעלה שלך

כדי להתקין את האפשרות OR-Tools עבור C++ במערכת ההפעלה שלכם, מזינים:

cmake --build build --config Release --target install -v