เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เบžเบฒเบชเบฒเบเบฃเบฑเปˆเบ‡เปเบญเบชเบ›เบฒเป‚เบเบ™

Ad


OnWorks favicon

abicompat - เบญเบญเบ™เบฅเบฒเบเปƒเบ™เบ„เบฅเบฒเบง

เปเบฅเปˆเบ™ abicompat เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเบœเปˆเบฒเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ abicompat เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเป‚เบ”เบเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบ™เป„เบฅเบ™เปŒเบŸเบฃเบตเบซเบผเบฒเบเบญเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบฑเปˆเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เป‚เบ„เบ‡เบเบฒเบ™:

NAME


abicompat - เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ ABI

abicompat เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เปƒเบซเป‰เปเบกเปˆเบ™เบเบฑเบ‡เบขเบนเปˆ
ABI เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบชเบฐเบšเบฑเบšเบ•เปเปˆเบกเบฒเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ™เบฑเป‰เบ™. เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบ‚เบญเบ‡ ABI, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ abicompat เบŠเบตเป‰เบšเบญเบเบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™
เบ„เบงเบฒเบกเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบ™เบฑเป‰เบ™เปเบกเปˆเบ™.

เบเบฒเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡


abicompat [เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹] [ ]

OPTIONS


ยท - เบŠเปˆเบงเบ

เบชเบฐเปเบ”เบ‡เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบชเบฑเป‰เบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบญเบญเบ.

ยท - เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ | -v

เบชเบฐเปเบ”เบ‡เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบญเบญเบ.

ยท --list-undefined-เบชเบฑเบ™เบเบฒเบฅเบฑเบ | -u

เบชเบฐเปเบ”เบ‡เบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบฅเบฐเบญเบญเบ.

ยท --show-base-names | -b

เปƒเบ™เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบกเบท, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐ
เบซเปเบชเบฐเบซเบกเบธเบ”เบ–เบทเบเบเปˆเบฒเบงเป€เบ–เบดเบ‡เป‚เบ”เบเบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™; เบšเปเปˆเปเบกเปˆเบ™เบŠเบทเปˆเป€เบ•เบฑเบก. เบ™เบตเป‰
เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบชเบฐเบ„เบดเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบŠเบทเปˆเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐ
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบŠเบทเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

ยท --app-debug-info-dir

เบเปเบฒเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบกเปˆเบ™
เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบงเบฒเบ‡โ€‹เบญเบญเบโ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบš binaries เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debug เป„เบ”เป‰
เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบŠเบธเบ”เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

ยท --lib-debug-info-dir1

เบเปเบฒเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบžเบฒเบเปƒเบ•เป‰เบ‚เปเป‰เบกเบนเบ™ debug เบ‚เบญเบ‡เบชเบฐเบšเบฑเบšเบ—เปเบฒเบญเบดเบ”
เบ‚เบญเบ‡เบซเปเบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบกเปˆเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™
เป„เบšเบ™เบฒเบฃเบตเบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเบขเบนเปˆเปƒเบ™เบŠเบธเบ”เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

ยท --lib-debug-info-dir2

เบเปเบฒเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบžเบฒเบเปƒเบ•เป‰เบ‚เปเป‰เบกเบนเบ™ debug เบ‚เบญเบ‡เบชเบฐเบšเบฑเบšเบ—เบตเบชเบญเบ‡
เบ‚เบญเบ‡เบซเปเบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบกเปˆเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™
เป„เบšเบ™เบฒเบฃเบตเบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเบขเบนเปˆเปƒเบ™เบŠเบธเบ”เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

ยท --no-show-locs
เบขเปˆเบฒเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบšเปˆเบญเบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™ เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡ เปเบšเปˆเบ‡เบ›เบฑเบ™ เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡
เบ›เบฐเป€เบžเบ”เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡.

ยท -- เป‚เบซเบกเบ”เบญเปˆเบญเบ™

เบ™เบตเป‰เบเบฐเบ•เบธเป‰เบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญเบ‚เบญเบ‡ abicompat. เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ™เบตเป‰โ€‹, เบกเบตโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ‚เบญเบ‡โ€‹
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, abicompat เบ–เบทเบเป€เบญเบตเป‰เบ™เปเบšเบšเบ™เบตเป‰:

abicompat --weak-mode

เบซเบกเบฒเบเป€เบซเบ”เบงเปˆเบฒ -- เป‚เบซเบกเบ”เบญเปˆเบญเบ™ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เปเบ•เปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ‚เบญเบ‡โ€‹
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป„เบ”เป‰เบ–เบทเบเบกเบญเบš, เบžเป‰เบญเบกเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ; เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบฑเป‰เบ™, abicompat เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
เบชเบฐเบซเบผเบฑเบšเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เปเบ”เบญเปˆเบญเบ™:

abicompat

เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญเบ™เบตเป‰, เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เบตเปˆเบชเบปเปˆเบ‡เบญเบญเบเป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐ
เบšเปเบฅเบดเป‚เบžเบเป‚เบ”เบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ (เปƒเบ™, เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเบ•เบปเบงเปเบ›เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เปเบกเปˆเบ™ undefined เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เปเบฅเบฐเบชเบปเปˆเบ‡เบญเบญเบเป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”) เปเบกเปˆเบ™
เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบฅเบธเป‰เบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰เป‚เบ”เบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบชเบญเบ‡โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ‚เบญเบ‡โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เปเบกเปˆเบ™โ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹, abicompat เบšเบญเบเบœเบนเป‰เปƒเบŠเป‰เบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปเบ™เบงเปƒเบ”
เปเบกเปˆเบ™.

เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰, abicompat เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐ
เบ•เบปเบงเปเบ›เบ—เบตเปˆเบชเบปเปˆเบ‡เบญเบญเบเป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบกเบฒเบเป€เบ–เบดเบ‡เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ
เบ„เบฒเบ”เบงเปˆเบฒ, เป€เบ—เบปเปˆเบฒเบ—เบตเปˆ ABI เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

เปƒเบซเป‰โ€‹เบชเบฑเบ‡โ€‹เป€เบเบ”โ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ™เบตเป‰โ€‹, abicompat เบšเปเปˆเบเบงเบ”เบžเบปเบšเบŸเบฑเบ‡เบŠเบฑเบ™ เบซเบผเบทเบ•เบปเบงเปเบ›เบ—เบตเปˆเบชเบปเปˆเบ‡เบญเบญเบ
(เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹) เบ—เบตเปˆโ€‹เบ„เบฒเบ”โ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป‚เบ”เบโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป‚เบเบโ€‹เบเป‰เบฒเบโ€‹เบญเบญเบโ€‹เบˆเบฒเบโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹.
เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบญเปˆเบญเบ™เปเบญ mode

เบเบฑเบšเบ„เบทเบ™ VALUES


เบฅเบฐเบซเบฑเบ”เบ—เบฒเบ‡เบญเบญเบเบ‚เบญเบ‡ abicompat เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™ 0 เบ–เป‰เบฒ ABI เบ‚เบญเบ‡ binaries เป€เบ›เบฑเบ™
เบ›เบฝเบšเบ—เบฝเบšเปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™, เบซเบผเบทเบšเปเปˆเปเบกเปˆเบ™เบชเบนเบ™เบ–เป‰เบฒเบžเบงเบเบกเบฑเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบทเบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบปเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ•เปเปˆเบกเบฒ, เบฅเบฐเบซเบฑเบ”เบญเบญเบเปเบกเปˆเบ™ 8-bits-wide bit field เบ—เบตเปˆเปเบ•เปˆเบฅเบฐ bit เบกเบต a
เบ„เบงเบฒเบกเบซเบกเบฒเบเบชเบฐเป€เบžเบฒเบฐ.

เบšเบดเบ”เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡เบ„เปˆเบฒ 1, เบŠเบทเปˆ ABIDIFF_ERROR เบซเบกเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบงเปˆเบฒโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹.

เบšเบดเบ”เบ—เบตเบชเบญเบ‡, เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒ 2, เบŠเบทเปˆ ABIDIFF_USAGE_ERROR เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™
เบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบท. เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบท
เบ”เป‰เบงเบเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ, เบกเบตเบ•เบปเบงเป€เบฅเบเบœเบดเบ” เบซเบผเบท argument, เปเบฅเบฐเบญเบทเปˆเบ™เป† เบ–เป‰เบฒเบšเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™
เบ•เบฑเป‰เบ‡, เบˆเบฒเบเบ™เบฑเป‰เบ™ ABIDIFF_ERROR bit เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™.

เบšเบดเบ”เบ—เบตเบชเบฒเบก, เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒ 4, เบŠเบทเปˆ ABIDIFF_ABI_CHANGE เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ ABI เบ‚เบญเบ‡ binaries เป€เบ›เบฑเบ™
เบ›เบฝเบšเบ—เบฝเบšเปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

เบšเบดเบ”เบ—เบตเบชเบตเปˆ, เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒ 8, เบŠเบทเปˆ ABIDIFF_ABI_INCOMPATIBLE_CHANGE เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ ABI เบ‚เบญเบ‡
binaries เบ›เบฝเบšเบ—เบฝเบšเปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰. เบ–เป‰เบฒเบšเบดเบ”เบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
ABIDIFF_ABI_CHANGE bit เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™. เบ–เป‰เบฒ ABIDIFF_ABI_CHANGE เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปเบฅเบฐ
ABIDIFF_INCOMPATIBLE_CHANGE is เบšเปเปˆ เบเปเบฒเบ™เบปเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ ABIs เบ—เบตเปˆเบ–เบทเบเบ›เบฝเบšเบ—เบฝเบšเบญเบฒเบ”เบˆเบฐ
เบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบกเบฐเบ™เบธเบ”เบ•เป‰เบญเบ‡เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ ABI
เป€เบžเบทเปˆเบญเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบซเบผเบทเบšเปเปˆ.

เบšเบดเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบ•เบปเบงเบขเปˆเบฒเบ‡


ยท เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ„เบงเบฒเบกโ€‹เบšเปเปˆโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบเบฑเบ™ ABI เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เปƒเบซเบกเปˆโ€‹:

$ cat -n test0.h
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ 1 fo
2 {
3 int m0;
4
5 foo()
6 : m0()
7 {}
8 };
9
10 เบŸเบธเบ”*
11 first_func();
12
13 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
14 second_func(foo&);
15
16 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
17 third_func();
$

$ cat -n test-app.cc
1 // เบฅเบงเบšเบฅเบงเบกเบเบฑเบš:
2 // g++ -g -Wall -o test-app -L. -ltest-0 test-app.cc
3
4 #include "test0.h"
5
6 int
7 เบซเบผเบฑเบ()
8 {
9 foo* f = first_func();
10 second_func(*f);
11 เบเบฑเบšเบ„เบทเบ™ 0;
12 }
$

$ cat -n test0.cc
1 // เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบ”เป‰เบงเบ:
2 // g++ -g -Wall -shared -o libtest-0.so test0.cc
3
4 #include "test0.h"
5
6 เบŸเบธเบ”*
7 first_func()
8 {
9 foo* f = new foo();
10 เบเบฑเบšเบ„เบทเบ™ f;
11 }
12
13 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
14 second_func(foo&)
15 {
16 }
17
18 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
19 third_func()
20 {
21 }
$

$ cat -n test1.h
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ 1 fo
2 {
3 int m0;
4 char m1; /* <-- เป„เบ”เป‰เป€เบžเบตเปˆเบกเบชเบฐเบกเบฒเบŠเบดเบเปƒเปเปˆเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰! */
5
6 foo()
7 : m0( ),
8 m1()
9 {}
10 };
11
12 เบŸเบธเบ”*
13 first_func();
14
15 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
16 second_func(foo&);
17
18 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
19 third_func();
$

$ cat -n test1.cc
1 // เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบ”เป‰เบงเบ:
2 // g++ -g -Wall -shared -o libtest-1.so test1.cc
3
4 #include "test1.h"
5
6 เบŸเบธเบ”*
7 first_func()
8 {
9 foo* f = new foo();
10 เบเบฑเบšเบ„เบทเบ™ f;
11 }
12
13 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
14 second_func(foo&)
15 {
16 }
17
18 /* เปƒเบซเป‰เบ„เปเบฒเบ„เบดเบ”เบ„เปเบฒเป€เบซเบฑเบ™เบญเบญเบเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡ third_func()
19 เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ
20 third_func()
21 {
22 }
23 */
$

ยทเบฅเบงเบšเบฅเบงเบกเบชเบฐเบšเบฑเบšเบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”: libtest-0.so เปเบฅเบฐ
libtest-1.so:

$g++ -g -Wall -shared -o libtest-0.so test0.cc
$g++ -g -Wall -shared -o libtest-1.so test1.cc

ยทเบฅเบงเบšเบฅเบงเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบฑเบ™เบเบฑเบšเบชเบฐเบšเบฑเบšเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”,
เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡ เปเบญเบฑเบšเบ—เบปเบ”เบชเบญเบš เบ„เบนเปˆ:

$ g++ -g -Wall -o test-app -L. -ltest-0.so test-app.cc

ยท เบ”เบฝเบงเบ™เบตเป‰, เปƒเบŠเป‰ abicompat เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบงเปˆเบฒ libtest-1.so เปเบกเปˆเบ™ ABI เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš app, เบ”เป‰เบงเบเบ„เบงเบฒเบกเบ™เบฑเบšเบ–เบท
เบเบฑเบš ABI เบ‚เบญเบ‡ libtest-0.so:

$ abicompat test-app libtest-0.so libtest-1.so
เป„เบŸเบฅเปŒ ELF 'test-app' เบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™ ABI เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš 'libtest-1.so' เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบš 'libtest-0.so' เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:
เบชเบฑเบ‡เบฅเบงเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบŸเบฑเบ‡เบŠเบฑเบ™: 0 เบ–เบญเบ”เบญเบญเบ, 2 เบ›เปˆเบฝเบ™เปเบ›เบ‡, 0 เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบตเปˆเบก
เบชเบฐเบซเบผเบธเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเบงเปเบ›: 0 เบฅเบปเบšเบญเบญเบ, 0 เบ›เปˆเบฝเบ™เปเบ›เบ‡, 0 เป€เบžเบตเปˆเบกเบ•เบปเบงเปเบ›

2 เบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ—เบฒเบ‡เบญเป‰เบญเบก:

[C]'function foo* first_func()' เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ—เบฒเบ‡เบญเป‰เบญเบก:
เบ›เปˆเบฝเบ™โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เป„เบ›โ€‹เบšเปˆเบญเบ™โ€‹:
เบŠเบตเป‰เป„เบ›เบžเบดเบก 'struct foo':
เบ‚เบฐเบซเบ™เบฒเบ”เบ›เปˆเบฝเบ™เบˆเบฒเบ 32 เบซเบฒ 64 bits
1 เบเบฒเบ™เปเบŠเบเบชเบฐเบกเบฒเบŠเบดเบเบ‚เปเป‰เบกเบนเบ™:
'char foo::m1', เบ—เบตเปˆ offset 32 โ€‹โ€‹(in bits)
[C] 'function void second_func(foo&)' เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ—เบฒเบ‡เบญเป‰เบญเบก:
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต 0 เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” 'foo&' เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ›เบฐเป€เบžเบ”เบเปˆเบญเบ:
เบ›เบฐเป€เบžเบ”เบญเป‰เบฒเบ‡เบญเบตเบ‡ 'struct foo' เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฅเบฒเบเบ‡เบฒเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰

$

ยทเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญเบ‚เบญเบ‡ abicompat, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบชเบฐเบซเบ™เบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐ
เบชเบฐโ€‹เบšเบฑเบšโ€‹เปƒเบซเบกเปˆโ€‹เบ‚เบญเบ‡โ€‹เบซเปโ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹:

$ abicompat --weak-mode test-app libtest-1.so
เบซเบ™เป‰เบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”
'libtest-1.so'
เบกเบตเบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ”
'เปเบญเบฑเบšเบ—เบปเบ”เบชเบญเบš'
เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒ:

function foo* first_func():
เบ›เปˆเบฝเบ™โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เป„เบ›โ€‹เบšเปˆเบญเบ™โ€‹:
เบŠเบตเป‰เป„เบ›เบžเบดเบก 'struct foo':
เบ‚เบฐเบซเบ™เบฒเบ”เบ›เปˆเบฝเบ™เบˆเบฒเบ 32 เบซเบฒ 64 bits
1 เบเบฒเบ™เปเบŠเบเบชเบฐเบกเบฒเบŠเบดเบเบ‚เปเป‰เบกเบนเบ™:
'char foo::m1', เบ—เบตเปˆ offset 32 โ€‹โ€‹(in bits)

$

เปƒเบŠเป‰ abicompat เบญเบญเบ™เป„เบฅเบ™เปŒเป‚เบ”เบเปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™ onworks.net


เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบŸเบฃเบต

เบ”เบฒเบงเป‚เบซเบผเบ”เปเบญเบฑเบš Windows เปเบฅเบฐ Linux

  • 1
    เบงเบปเบ‡เป€เบฅเบฑเบš
    เบงเบปเบ‡เป€เบฅเบฑเบš
    เบงเบปเบ‡เป€เบฅเบฑเบšเป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เป เปเบฅเบฐเบšเปเปˆเป€เบชเบเบ„เปˆเบฒ
    เบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบš
    เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบ‚เบฝเบ™เปƒเบ™ HTML, CSS, เปเบฅเบฐ
    JavaScript เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเบฒเบเบ•เบฒเบ—เบตเปˆเบชเบธเบกเปƒเบชเปˆเปเบฅเบฐ
    เบเบฝเบก...
    เบ”เบฒเบงเป‚เบซเบฅเบ”เบงเบปเบ‡เป€เบฅเบฑเบš
  • 2
    Pascal Compiler เบŸเบฃเบต
    Pascal Compiler เบŸเบฃเบต
    A 32/64/16-bit Pascal compiler เบชเปเบฒเบฅเบฑเบš
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Game Boy
    Advance, Nintendo NDS เปเบฅเบฐ DOS;
    เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ wi...
    เบ”เบฒเบงเป‚เบซเบฅเบ” Pascal Compiler เบŸเบฃเบต
  • 3
    เบ‚เปเป‰เบกเบนเบ™เบ”เบดเบˆเบดเบ•เบญเบ™ Canon EOS
    เบ‚เปเป‰เบกเบนเบ™เบ”เบดเบˆเบดเบ•เบญเบ™ Canon EOS
    Canon เบšเปเปˆเบกเบตเบเบฒเบ™เบ™เบฑเบš shutter
    เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบกเบนเบ™ EXIF โ€‹โ€‹เบ‚เบญเบ‡ an
    เป„เบŸเบฅเปŒเบฎเบนเบšเบžเบฒเบš, เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบš Nikon เปเบฅเบฐ
    Pentax. เบšเปเปˆเบกเบต Canon เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™
    เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ”เบ‚เปเป‰เบกเบนเบ™ Canon EOS DIGITAL
  • 4
    rEFInd
    rEFInd
    rEFInd เปเบกเปˆเบ™เบ—เบฒเบ‡เปเบเบเบ‚เบญเบ‡ rEFIt boot
    เบœเบนเป‰โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš rEFIt, rEFInd เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰
    เบเบงเบ”โ€‹เบซเบฒโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ” boot EFI เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹
    loaders เปเบฅเบฐเบกเบฑเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต GUI เบ‡เบฒเบก
    เป€เบกเบ™เบนเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบšเบนเบ”...
    เบ”เบฒเบงเป‚เบซเบฅเบ” rEFInd
  • 5
    ExpressLuke GSI
    ExpressLuke GSI
    เบซเบ™เป‰เบฒเบ”เบฒเบงเป‚เบซเบฅเบ” SourceForge เบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ
    เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบ”เบฒเบงเป‚เบซเบฅเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™
    GSIs, เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆเบ‚เบญเบ‡ phhusson
    เป€เบฎเบฑเบ”เบงเบฝเบ. เบ‚เป‰เบญเบเบชเป‰เบฒเบ‡เบ—เบฑเบ‡ Android Pie เปเบฅเบฐ
    Android 1...
    เบ”เบฒเบงเป‚เบซเบฅเบ” ExpressLuke GSI
  • 6
    เบ™เบฑเบเบชเบฐเปเบ”เบ‡เบ”เบปเบ™เบ•เบต
    เบ™เบฑเบเบชเบฐเปเบ”เบ‡เบ”เบปเบ™เบ•เบต
    Music Caster เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเบผเบดเป‰เบ™เบ”เบปเบ™เบ•เบตเบ–เบฒเบ”
    เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เบ‚เบฑเบšโ€‹เบฎเป‰เบญเบ‡โ€‹เป€เบžเบ‡โ€‹เปƒเบ™โ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบ›เบฑเบ™โ€‹
    เบญเบธเบ›เบฐเบเบญเบ™ Google Cast. เปƒเบ™โ€‹เบเบฒเบ™โ€‹เปเบฅเปˆเบ™โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹,
    เบ—เปˆเบฒเบ™โ€‹เบˆเบฐโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบ„เบฅเบดเบโ€‹เปƒเบชเปˆโ€‹เบฅเบนเบโ€‹เบชเบญเบ™โ€‹เปƒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹
    Tas...
    เบ”เบฒเบงโ€‹เป‚เบซเบผเบ”โ€‹เป€เบžเบ‡ Casterโ€‹
  • เป€เบžเบตเปˆเบกเป€เบ•เบตเบก ยป

Linux เบ„เบณ เบชเบฑเปˆเบ‡

Ad