השלבים שלמעלה מבצעים קישור סטטי לגרסה של ספריית Frame Pacing
שעברה קומפילציה לשילוב הנתון של ABI, רמת API, NDK ו-STL. אם השילוב לא זמין בהגדרות שלכם, אפשר לקשר במקום זאת לספרייה המשותפת:
פועלים לפי שלבים 1 ו-2 מהקטע הקודם כדי לעדכן את נתיבי ההכללה של הקומפיילר ולהשתמש בקובץ הכותרת המתאים.
מוסיפים נתיב מהצורה הבאה לנתיבי הספרייה של ה-linker:
קישור סטטי ייתן לכם טביעת רגל קטנה בהרבה של קוד, כי לא תצטרכו לאגד את הספרייה המשותפת libswappy.so.
שימוש ב-CMake (ספרייה סטטית בלבד)
אם אתם משתמשים ב-CMake, תוכלו לראות דוגמה להגדרת CMake בקובץ gamesdk/samples/bouncyball/app/CMakeLists.txt בספרייה שהורדתם (downloaded library). הוא כולל קובץ כלי עזר, gamesdk/samples/gamesdk.cmake, שמבצע בדיקות סופיות, מוסיף את נתיבי ההכללה המתאימים של הקומפיילר ומייצר יעד שאפשר להשתמש בו כדי לקשר את הספרייה.
כדי להשתמש בכלי הזה:
כוללים את הקובץ הזה ב-CMakeLists.txt:
include("path/to/gamesdk/samples/gamesdk.cmake")
קוראים לפונקציה add_gamesdk_target עם התיקייה שמכילה את Gamesdk:
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
ב-target_link_libraries של הספרייה המקורית, מוסיפים את swappy כתלות:
target_link_libraries(native-lib swappy ...)
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-08-26 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-08-26 (שעון UTC)."],[],[],null,["After you've [downloaded the library](/games/sdk/frame-pacing/opengl) onto your\nmachine and have checked it into your source control system, make the following\nchanges to your project's build settings.\n\nStatic library\n\nDo the following steps to link your project to the static library:\n\n1. Add `gamesdk/include` to your compiler include paths.\n2. Include `swappy/swappyGL.h` for integration with OpenGL ES. In most cases, the header file contains all the functions you need to integrate the library into your engine.\n3. Add a path of the following form in your linker library paths:\n\n ```\n gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release\n ```\n\n For example: `gamesdk/libs/arm64-v8a_API24_NDK17_cpp_static_Release`\n4. Add `-lswappy_static` to your linker command.\n\nShared library\n\nThe above steps statically link against a version of the Frame Pacing library\ncompiled for the given ABI, API level, NDK and STL combination. If the combination\nis not available for your settings, you can instead link against the shared\nlibrary:\n\n1. Follow steps 1 and 2 from the previous section to update your compiler include paths and use the appropriate header file.\n2. Add a path of the following form in your linker library paths:\n\n ```\n gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release/lib/swappy\n ```\n3. Add `-lswappy` to your linker command.\n\nStatic linking will give you a much smaller code footprint as you don't need to\nbundle the `libswappy.so` shared library.\n\nUsing CMake (static library only)\n\nIf you are using CMake, see the `gamesdk/samples/bouncyball/app/CMakeLists.txt`\nfile in the [downloaded library](/games/sdk/frame-pacing/opengl)\nfor an example CMake configuration. It includes a utility file, `gamesdk/samples/gamesdk.cmake`,\nthat performs final checks, adds the proper compiler include paths and\ngenerates a target that you can use to link the library.\n\nTo use this utility, do the following:\n\n1. Include this file in your CMakeLists.txt: `include(\"`\u003cvar translate=\"no\"\u003epath/to/gamesdk\u003c/var\u003e`/samples/gamesdk.cmake\")`\n2. Call the `add_gamesdk_target` function with the folder containing the gamesdk: `add_gamesdk_target(PACKAGE_DIR `\u003cvar translate=\"no\"\u003epath/to/gamesdk\u003c/var\u003e`)`\n3. In your `target_link_libraries` for your native library, add `swappy` as a dependency: `\n target_link_libraries(native-lib swappy ...)\n `\n\n| **Note:** The path to the gamesdk used for `include` and `add_gamesdk_target` can either be absolute (for example, `/home/yourusername/gamesdk` or `C:\\Android\\gamesdk`) or relative to the `CMakeLists.txt` file.\n\nFor advanced usage of CMake, see the [`gamesdk.cmake` source file](https://android.googlesource.com/platform/frameworks/opt/gamesdk/+/refs/heads/master/samples/gamesdk.cmake)."]]