เพิ่ม Firebase ไปยังโปรเจ็กต์ C++

ยกระดับเกม C++ ด้วย Firebase C++ SDK ซึ่งมีอินเทอร์เฟซ C++ อยู่เหนือ Firebase SDK

เข้าถึง Firebase จากโค้ด C++ ทั้งหมดโดยไม่ต้องเขียนโค้ดเฉพาะแพลตฟอร์ม นอกจากนี้ Firebase SDK ยังแปลสำนวนเฉพาะภาษาหลายอย่าง ที่ Firebase ใช้เป็นอินเทอร์เฟซที่นักพัฒนาซอฟต์แวร์ C++ คุ้นเคยมากขึ้นด้วย

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพเกมด้วย Firebase ได้ที่ หน้าเกม Firebase

หากเพิ่ม Firebase ลงในโปรเจ็กต์ C++ แล้ว ตรวจสอบว่าคุณใช้ Firebase C++ SDK เวอร์ชันล่าสุด


ข้อกำหนดเบื้องต้น

  • ติดตั้งโปรแกรมแก้ไขหรือ IDE ที่ต้องการ เช่น Android Studio, IntelliJ หรือ VS Code

  • รับ Android SDK

  • ตรวจสอบว่าโปรเจ็กต์เป็นไปตามข้อกำหนดต่อไปนี้

  • ตั้งค่าอุปกรณ์จริงหรือใช้โปรแกรมจำลองเพื่อเรียกใช้แอป

    • โปรแกรมจำลอง ต้องใช้รูปภาพโปรแกรมจำลองที่มี Google Play

    • สำหรับไลบรารี C++ บางรายการ คุณต้องมีบริการ Google Play ในอุปกรณ์ไคลเอ็นต์ โปรดดูรายการในหน้านี้

  • ลงชื่อเข้าใช้ Firebase ด้วยบัญชี Google

ขั้นตอนที่ 2: สร้างโปรเจ็กต์ Firebase

ก่อนที่จะเพิ่ม Firebase ลงในโปรเจ็กต์ C++ ได้ คุณต้องสร้างโปรเจ็กต์ Firebase เพื่อเชื่อมต่อกับโปรเจ็กต์ C++ ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรเจ็กต์ Firebase ได้ที่ ทำความเข้าใจโปรเจ็กต์ Firebase

ขั้นตอนที่ 3: ลงทะเบียนแอปกับ Firebase

หากต้องการใช้ Firebase ในแอป Android คุณต้องลงทะเบียนแอปกับโปรเจ็กต์ Firebase การลงทะเบียนแอปมักเรียกว่า "การเพิ่ม" แอปไปยังโปรเจ็กต์

  1. ไปที่Firebaseคอนโซล

  2. ตรงกลางหน้าภาพรวมโปรเจ็กต์ ให้คลิกไอคอน Android () หรือเพิ่มแอปเพื่อเปิดเวิร์กโฟลว์การตั้งค่า

  3. ป้อนชื่อแพ็กเกจของแอปในช่องชื่อแพ็กเกจ Android

  4. (ไม่บังคับ) ป้อนชื่อเล่นของแอป ซึ่งเป็นตัวระบุภายในที่สะดวก และคุณเท่านั้นที่จะเห็นในคอนโซล Firebase

  5. คลิกลงทะเบียนแอป

ขั้นตอนที่ 4: เพิ่มไฟล์กำหนดค่า Firebase

  1. คลิก Download google-services.json เพื่อรับไฟล์กำหนดค่า Firebase Android

  2. เปิดโปรเจ็กต์ C++ ใน IDE แล้วเพิ่มไฟล์การกำหนดค่าลงในโปรเจ็กต์โดยทำดังนี้

  3. (เฉพาะการสร้าง Gradle) หากต้องการเปิดใช้บริการ Firebase ในโปรเจ็กต์ C++ ให้เพิ่มปลั๊กอิน Gradle ของบริการของ Google ลงในไฟล์ build.gradle ระดับบนสุด

    1. เพิ่มกฎเพื่อรวมปลั๊กอิน Gradle ของบริการ Google ตรวจสอบว่าคุณมีที่เก็บ Maven ของ Google ด้วย

        buildscript {
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
          }
      
          dependencies {
            // ...
      
            // Add the following lines:
            classpath 'com.google.gms:google-services:4.5.0'  // Google services Gradle plugin
            implementation 'com.google.android.gms:18.11.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. ใช้ปลั๊กอิน Gradle ของบริการของ Google โดยทำดังนี้

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google services Gradle plugin
      
        android {
          // ...
        }
      
  4. คุณทำงานตั้งค่าในFirebaseคอนโซลเสร็จเรียบร้อยแล้ว ดำเนินการต่อเพื่อเพิ่ม Firebase C++ SDK ด้านล่าง

ขั้นตอนที่ 5: เพิ่ม Firebase C++ SDK

ขั้นตอนในส่วนนี้เป็นตัวอย่างวิธีเพิ่มผลิตภัณฑ์ Firebase ที่รองรับลงในโปรเจ็กต์ Firebase C++

  1. ดาวน์โหลด Firebase C++ SDK แล้วแตกไฟล์ SDK ในตำแหน่งที่สะดวก

    Firebase C++ SDK ไม่ได้เจาะจงแพลตฟอร์ม แต่มีไลบรารีที่เจาะจงแพลตฟอร์ม

  2. ในไฟล์ gradle.properties ของโปรเจ็กต์ ให้ระบุตำแหน่งของ SDK ที่แตกไฟล์แล้ว ดังนี้

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
  3. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ settings.gradle ของโปรเจ็กต์

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
  4. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle)
    รวมการอ้างอิงไลบรารี สําหรับผลิตภัณฑ์ Firebase ที่คุณต้องการใช้ในแอป

    เปิดใช้แล้ว Analytics รายการ

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
      auth
      database
    }

    ไม่ได้เปิดใช้ Analytics

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Firebase Authentication and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      auth
      database
    }
  5. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ CMakeLists.txt ของโปรเจ็กต์
    รวมไลบรารีสำหรับ ผลิตภัณฑ์ Firebase ที่ต้องการใช้ในแอป

    เปิดใช้แล้ว Analytics รายการ

    # Add Firebase libraries to the target using the function from the SDK.
    add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
    
    # The Firebase C++ library `firebase_app` is required,
    # and it must always be listed last.
    
    # Add the Firebase SDKs for the products you want to use in your app
    # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database
    set(firebase_libs
      firebase_analytics
      firebase_auth
      firebase_database
      firebase_app
    )
    target_link_libraries(${target_name} "${firebase_libs}")

    ไม่ได้เปิดใช้ Analytics

    # Add Firebase libraries to the target using the function from the SDK.
    add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
    
    # The Firebase C++ library `firebase_app` is required,
    # and it must always be listed last.
    
    # Add the Firebase SDKs for the products you want to use in your app
    # For example, to use Firebase Authentication and Firebase Realtime Database
    set(firebase_libs
      firebase_auth
      firebase_database
      firebase_app
    )
    target_link_libraries(${target_name} "${firebase_libs}")
  6. ซิงค์แอปเพื่อให้ทรัพยากร Dependency ทั้งหมดมีเวอร์ชันที่จำเป็น

  7. หากคุณเพิ่ม Analytics ให้เรียกใช้แอปเพื่อส่งการยืนยันไปยัง Firebase ว่าคุณผสานรวม Firebase เรียบร้อยแล้ว ไม่เช่นนั้น ให้ข้าม ขั้นตอนการยืนยัน

    บันทึกของอุปกรณ์จะแสดงการยืนยัน Firebase ว่าการเริ่มต้น เสร็จสมบูรณ์แล้ว หากคุณเรียกใช้แอปในโปรแกรมจำลองที่มีสิทธิ์เข้าถึงเครือข่าย คอนโซล Firebase จะแจ้งให้คุณทราบว่าการเชื่อมต่อแอปเสร็จสมบูรณ์แล้ว

เรียบร้อยแล้ว แอป C++ ได้รับการลงทะเบียนและกำหนดค่าให้ใช้บริการ Firebase แล้ว

ไลบรารีที่ใช้ได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารี Firebase สำหรับ C++ ได้ในเอกสารอ้างอิงและใน SDK แบบโอเพนซอร์ส ที่เผยแพร่ใน GitHub

ไลบรารีที่ใช้ได้สำหรับ Android (ใช้ CMake)

โปรดทราบว่าไลบรารี C++ สำหรับแพลตฟอร์ม Apple จะแสดงอยู่ในแพลตฟอร์ม Apple (iOS+) ในหน้าการตั้งค่านี้

ผลิตภัณฑ์ Firebase การอ้างอิงไลบรารี
(firebaseCpp.dependencies
สำหรับไฟล์ build.gradle)
การอ้างอิงไลบรารี
(firebase_libs
สำหรับไฟล์ CMakeLists.txt)
Analytics analytics firebase_analytics
(ต้องระบุ) firebase_app
App Check appCheck firebase_app_check
(ต้องระบุ) firebase_app
Authentication auth firebase_auth
(ต้องระบุ) firebase_app
Cloud Firestore firestore firebase_firestore
(ต้องระบุ) firebase_auth
(ต้องระบุ) firebase_app
Cloud Functions functions firebase_functions
(ต้องระบุ) firebase_app
Cloud Messaging messaging firebase_messaging
(แนะนำ) firebase_analytics
(ต้องระบุ) firebase_app
Cloud Storage storage firebase_storage
(ต้องระบุ) firebase_app
Realtime Database database firebase_database
(ต้องระบุ) firebase_app
Remote Config remoteConfig firebase_remote_config
(แนะนำ) firebase_analytics
(ต้องระบุ) firebase_app
ไลบรารีที่เลิกใช้งานแล้วหรือไม่รองรับ
Dynamic Links dynamicLinks firebase_dynamic_links
(แนะนำ) firebase_analytics
(ต้องระบุ) firebase_app

ข้อมูลเพิ่มเติมสำหรับการตั้งค่าบนอุปกรณ์เคลื่อนที่

รับรายงานข้อขัดข้องของ NDK

Firebase Crashlytics รองรับการรายงานข้อขัดข้องสําหรับแอปที่ใช้ไลบรารีเนทีฟของ Android ดูข้อมูลเพิ่มเติมได้ที่ รับรายงานข้อขัดข้องของ Android NDK

ระบบบิลด์ที่กำหนดเอง

Firebase มีสคริปต์ generate_xml_from_google_services_json.py สำหรับ แปลงgoogle-services.jsonเป็นทรัพยากร .xml ที่คุณรวมไว้ใน โปรเจ็กต์ได้ สคริปต์นี้ใช้การเปลี่ยนรูปแบบเดียวกันกับที่ปลั๊กอิน Gradle ของบริการ Google Play ดำเนินการเมื่อสร้างแอปพลิเคชัน Android

หากไม่ได้สร้างโดยใช้ Gradle (เช่น ใช้ ndk-build, makefiles, Visual Studio ฯลฯ) คุณสามารถใช้สคริปต์นี้เพื่อสร้างทรัพยากรสตริง Androidโดยอัตโนมัติ

ProGuard

ระบบบิลด์ Android หลายระบบใช้ ProGuard สำหรับบิลด์ในโหมดรีลีสเพื่อลดขนาดแอปพลิเคชันและปกป้องซอร์สโค้ด Java

หากใช้ ProGuard คุณจะต้องเพิ่มไฟล์ใน libs/android/*.pro ที่สอดคล้องกับไลบรารี Firebase C++ ที่คุณใช้ในการกำหนดค่า ProGuard

เช่น หากใช้ Gradle และใช้ Google Analytics ไฟล์ build.gradle จะมีลักษณะดังนี้

android {
  // ...
  buildTypes {
    release {
      minifyEnabled true
      proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro")
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro")
      // ...  and so on, for each Firebase C++ library that you're using
    }
  }
}

ข้อกำหนดของบริการ Google Play

ไลบรารี C++ ของ Firebase ส่วนใหญ่กำหนดให้บริการ Google Play ต้องอยู่ในอุปกรณ์ Android ของไคลเอ็นต์ หากไลบรารี C++ ของ Firebase แสดงผล kInitResultFailedMissingDependency เมื่อเริ่มต้น แสดงว่าบริการ Google Play ไม่พร้อมใช้งานใน อุปกรณ์ไคลเอ็นต์ (หมายความว่าต้องอัปเดต เปิดใช้งานอีกครั้ง แก้ไขสิทธิ์ ฯลฯ) คุณจะใช้ไลบรารี Firebase ไม่ได้จนกว่าจะแก้ไขสถานการณ์ในอุปกรณ์ไคลเอ็นต์

คุณดูสาเหตุที่บริการ Google Play ไม่พร้อมใช้งานในอุปกรณ์ไคลเอ็นต์ (และลองแก้ไข) ได้โดยใช้ฟังก์ชันใน google_play_services/availability.h

ตารางต่อไปนี้แสดงว่าต้องใช้บริการ Google Play ในอุปกรณ์ไคลเอ็นต์ สำหรับผลิตภัณฑ์ Firebase ที่รองรับแต่ละรายการหรือไม่

ไลบรารี C++ ของ Firebase ต้องใช้บริการ Google Play ในอุปกรณ์ไคลเอ็นต์ไหม
Analytics ไม่จำเป็น
Authentication ต้องระบุ
Cloud Firestore ต้องระบุ
Cloud Functions ต้องระบุ
Cloud Messaging ต้องระบุ
Cloud Storage ต้องระบุ
Dynamic Links ต้องระบุ
Realtime Database ต้องระบุ
Remote Config ต้องระบุ

ตั้งค่าเวิร์กโฟลว์บนเดสก์ท็อป (เบต้า)

เมื่อสร้างเกม การทดสอบเกมบนแพลตฟอร์มเดสก์ท็อปมักจะง่ายกว่ามาก จากนั้นจึงค่อยติดตั้งใช้งานและทดสอบบนอุปกรณ์เคลื่อนที่ในภายหลังของการพัฒนา เรามีชุดย่อยของ Firebase C++ SDK ที่สามารถเรียกใช้ใน Windows, macOS, Linux และจากภายในโปรแกรมแก้ไข C++ เพื่อรองรับเวิร์กโฟลว์นี้

  1. สำหรับเวิร์กโฟลว์บนเดสก์ท็อป คุณต้องทำสิ่งต่อไปนี้

    1. กำหนดค่าโปรเจ็กต์ C++ สำหรับ CMake
    2. สร้างโปรเจ็กต์ Firebase
    3. ลงทะเบียนแอป (iOS หรือ Android) กับ Firebase
    4. เพิ่มไฟล์กำหนดค่า Firebase สำหรับแพลตฟอร์มอุปกรณ์เคลื่อนที่
  2. สร้างไฟล์การกำหนดค่า Firebase เวอร์ชันเดสก์ท็อป

    • หากคุณเพิ่มไฟล์ google-services.json Android - เมื่อเรียกใช้แอป Firebase จะค้นหาไฟล์ mobile นี้ จากนั้นจะสร้างไฟล์กำหนดค่า Firebase desktop โดยอัตโนมัติ (google-services-desktop.json)

    • หากคุณเพิ่มไฟล์ GoogleService-Info.plist iOS - ก่อนเรียกใช้แอป คุณต้องแปลงไฟล์ mobile นี้เป็นไฟล์กำหนดค่า Firebase desktop หากต้องการแปลงไฟล์ ให้เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีเดียวกับไฟล์ GoogleService-Info.plist

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    ไฟล์การกำหนดค่าเดสก์ท็อปนี้มีรหัสโปรเจ็กต์ C++ ที่คุณป้อนใน Firebaseเวิร์กโฟลว์การตั้งค่าคอนโซล ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์การกำหนดค่าได้ที่ ทำความเข้าใจโปรเจ็กต์ Firebase

  3. เพิ่ม Firebase SDK ลงในโปรเจ็กต์ C++

    ขั้นตอนด้านล่างเป็นตัวอย่างวิธีเพิ่ม ผลิตภัณฑ์ Firebase ที่รองรับลงในโปรเจ็กต์ C++ ในตัวอย่างนี้ เราจะแสดงวิธีการเพิ่ม Firebase AuthenticationและFirebase Realtime Database

    1. ตั้งค่าFIREBASE_CPP_SDK_DIRตัวแปรสภาพแวดล้อมเป็นตำแหน่งของ Firebase C++ SDK ที่ไม่ได้ซิป

    2. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ CMakeLists.txt ของโปรเจ็กต์ รวมถึงไลบรารีสำหรับผลิตภัณฑ์ Firebase ที่คุณต้องการใช้ เช่น หากต้องการใช้ Firebase Authentication และ Firebase Realtime Database ให้ทำดังนี้

      # Add Firebase libraries to the target using the function from the SDK.
      add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
      
      # The Firebase C++ library `firebase_app` is required,
      # and it must always be listed last.
      
      # Add the Firebase SDKs for the products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      set(firebase_libs firebase_auth firebase_database firebase_app)
      target_link_libraries(${target_name} "${firebase_libs}")
  4. เรียกใช้แอป C++

ไลบรารีที่พร้อมใช้งาน (เดสก์ท็อป)

Firebase C++ SDK มีการรองรับเวิร์กโฟลว์บนเดสก์ท็อป สำหรับฟีเจอร์บางส่วน ซึ่งช่วยให้ใช้ Firebase บางส่วนได้ใน บิลด์เดสก์ท็อปแบบสแตนด์อโลนบน Windows, macOS และ Linux

ผลิตภัณฑ์ Firebase การอ้างอิงไลบรารี (ใช้ CMake)
App Check firebase_app_check
(ต้องระบุ) firebase_app
Authentication firebase_auth
(ต้องระบุ) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Cloud Functions firebase_functions
(ต้องระบุ) firebase_app
Cloud Storage firebase_storage
(ต้องระบุ) firebase_app
Realtime Database firebase_database
(ต้องระบุ) firebase_app
Remote Config firebase_remote_config
(ต้องระบุ) firebase_app

Firebase มีไลบรารีที่เหลือบนเดสก์ท็อปเป็น Stub (ใช้งานไม่ได้) เพื่อความสะดวกเมื่อสร้างสำหรับ Windows, macOS และ Linux ดังนั้น คุณจึงไม่จำเป็นต้องคอมไพล์โค้ดแบบมีเงื่อนไขเพื่อกำหนดเป้าหมายไปยังเดสก์ท็อป

Realtime Database เดสก์ท็อป

Realtime Database SDK สำหรับเดสก์ท็อปใช้ REST เพื่อเข้าถึงฐานข้อมูล ดังนั้นคุณต้องประกาศดัชนีที่คุณใช้กับ Query::OrderByChild() ในเดสก์ท็อป มิฉะนั้น Listener จะล้มเหลว

ข้อมูลเพิ่มเติมสำหรับการตั้งค่าบนเดสก์ท็อป

ไลบรารีของ Windows

สำหรับ Windows เราจะระบุเวอร์ชันไลบรารีตามข้อมูลต่อไปนี้

  • แพลตฟอร์มการสร้าง: โหมด 32 บิต (x86) กับ 64 บิต (x64)
  • สภาพแวดล้อมรันไทม์ของ Windows: Multithreaded / MT เทียบกับ Multithreaded DLL /MD
  • เป้าหมาย: เวอร์ชันที่เผยแพร่เทียบกับเวอร์ชันแก้ไขข้อบกพร่อง

โปรดทราบว่าเราได้ทดสอบไลบรารีต่อไปนี้โดยใช้ Visual Studio 2015 และ 2017

เมื่อสร้างแอปเดสก์ท็อป C++ ใน Windows ให้ลิงก์ไลบรารี Windows SDK ต่อไปนี้กับโปรเจ็กต์ ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของคอมไพเลอร์

ไลบรารี C++ ของ Firebase ทรัพยากร Dependency ของไลบรารี Windows SDK
App Check advapi32, ws2_32, crypt32
Authentication advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Cloud Functions advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud Storage advapi32, ws2_32, crypt32
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Remote Config advapi32, ws2_32, crypt32, rpcrt4, ole32

ไลบรารี macOS

สำหรับ macOS (Darwin) จะมีไลบรารีเวอร์ชันสำหรับแพลตฟอร์ม 64 บิต (x86_64) นอกจากนี้ เรายังมีเฟรมเวิร์กเพื่ออำนวยความสะดวกให้คุณด้วย

โปรดทราบว่าเราได้ทดสอบไลบรารี macOS โดยใช้ Xcode 26.2 แล้ว

เมื่อสร้างแอปเดสก์ท็อป C++ ใน macOS ให้ลิงก์รายการต่อไปนี้กับโปรเจ็กต์

  • pthread ไลบรารีระบบ
  • CoreFoundation เฟรมเวิร์กระบบ macOS
  • Foundation เฟรมเวิร์กระบบ macOS
  • Security เฟรมเวิร์กระบบ macOS
  • GSS เฟรมเวิร์กระบบ macOS
  • Kerberos เฟรมเวิร์กระบบ macOS
  • SystemConfiguration เฟรมเวิร์กระบบ macOS

ดูข้อมูลเพิ่มเติมในเอกสารประกอบของคอมไพเลอร์

ไลบรารี Linux

สำหรับ Linux จะมีไลบรารีเวอร์ชัน 32 บิต (i386) และ 64 บิต (x86_64)

โปรดทราบว่าเราทดสอบไลบรารี Linux โดยใช้ GCC 4.8.0, GCC 7.2.0 และ Clang 5.0 ใน Ubuntu

เมื่อสร้างแอปเดสก์ท็อป C++ ใน Linux ให้ลิงก์pthreadไลบรารีระบบกับโปรเจ็กต์ ดูข้อมูลเพิ่มเติมในเอกสารประกอบของคอมไพเลอร์ หากคุณสร้างด้วย GCC 5 ขึ้นไป ให้กำหนด -D_GLIBCXX_USE_CXX11_ABI=0

ขั้นตอนถัดไป