เพิ่ม 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. (ไม่บังคับ) ป้อนข้อมูลแอปอื่นๆ ดังนี้ ชื่อเล่นของแอปและ SHA-1 ของใบรับรองการลงนามสำหรับแก้ไขข้อบกพร่อง

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

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

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

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

  3. (การสร้าง Gradle เท่านั้น) หากต้องการเปิดใช้บริการ Firebase ในโปรเจ็กต์ C++ ให้เพิ่มปลั๊กอิน google-services ลงในไฟล์ 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.4.3'  // Google Services plugin
            implementation 'com.google.android.gms:18.7.2'
          }
        }
      
        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 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)
    รวมทรัพยากร Dependency ของไลบรารี สำหรับผลิตภัณฑ์ 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 แล้ว

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

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

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

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

ผลิตภัณฑ์ Firebase การอ้างอิงไลบรารี
(firebaseCpp.dependencies
สำหรับไฟล์ build.gradle)
การอ้างอิงไลบรารี
(firebase_libs
สำหรับไฟล์ CMakeLists.txt)
AdMob admob firebase_admob
(ต้องระบุ) firebase_analytics
(ต้องระบุ) firebase_app
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
Dynamic Links dynamicLinks firebase_dynamic_links
(แนะนำ) firebase_analytics
(ต้องระบุ) firebase_app
Realtime Database database firebase_database
(ต้องระบุ) firebase_app
Remote Config remoteConfig firebase_remote_config
(แนะนำ) 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 ที่สอดคล้องกับไลบรารี C++ ของ Firebase ที่คุณใช้ในการกำหนดค่า 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 ในอุปกรณ์ไคลเอ็นต์ไหม
AdMob ไม่จำเป็น (โดยปกติ)
Analytics ไม่จำเป็น
Authentication ต้องระบุ
Cloud Firestore ต้องระบุ
Cloud Functions ต้องระบุ
Cloud Messaging ต้องระบุ
Cloud Storage ต้องระบุ
Dynamic Links ต้องระบุ
Realtime Database ต้องระบุ
Remote Config ต้องระบุ

AdMob และบริการ Google Play

Google Mobile Ads SDK สำหรับ Android ส่วนใหญ่ทำงานได้อย่างถูกต้อง โดยไม่ต้องใช้บริการ Google Play ในอุปกรณ์ไคลเอ็นต์ อย่างไรก็ตาม หากคุณใช้การอ้างอิง com.google.android.gms:play-services-ads-lite แทนการอ้างอิง com.google.firebase:firebase-ads มาตรฐานที่ระบุไว้ข้างต้น คุณจะต้องใช้บริการ Google Play

การเริ่มต้น AdMob จะแสดงผล kInitResultFailedMissingDependency ก็ต่อเมื่อทั้ง 2 เงื่อนไขต่อไปนี้เป็นจริง

  • บริการ Google Play ไม่พร้อมใช้งานในอุปกรณ์ไคลเอ็นต์
  • คุณกำลังใช้ com.google.android.gms:play-services-ads-lite

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

เมื่อสร้างเกม การทดสอบเกมบนแพลตฟอร์มเดสก์ท็อปมักจะง่ายกว่ามาก จากนั้นจึงค่อยนำไปใช้และทดสอบบนอุปกรณ์เคลื่อนที่ในภายหลัง เรามี SDK บางส่วนของ Firebase C++ ที่สามารถเรียกใช้ใน 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 16.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

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