{"id":17999,"date":"2024-10-28T19:37:10","date_gmt":"2024-10-28T19:37:10","guid":{"rendered":"http:\/\/www.max-sperling.bplaced.net\/?p=17999"},"modified":"2024-10-30T11:15:08","modified_gmt":"2024-10-30T11:15:08","slug":"comparison-api-and-abi","status":"publish","type":"post","link":"http:\/\/www.max-sperling.bplaced.net\/?p=17999","title":{"rendered":"Comparison &#8211; API and ABI"},"content":{"rendered":"<p>They are both interfaces.<\/p>\n<table>\n<tr>\n<th>Interface<\/th>\n<th>API<\/th>\n<th>ABI<\/th>\n<\/tr>\n<tr>\n<th>Between whom?<\/th>\n<td>Application\/Library and library<\/td>\n<td>Application\/Library and platform<\/td>\n<\/tr>\n<tr>\n<th>Defined where?<\/th>\n<td>Headers of the library<\/td>\n<td>Specifications of the platform<\/td>\n<\/tr>\n<tr>\n<th>Contains what?<\/th>\n<td>Definitions of e.g.<br \/>&#8211; functions<br \/>&#8211; variables<br \/>&#8211; classes<\/td>\n<td>Specifications of e.g.<br \/>&#8211; binary formats<br \/>&#8211; function calling conventions<br \/>&#8211; data structure alignment<\/td>\n<\/tr>\n<tr>\n<th>Examples<\/th>\n<td>&#8211; <a href=\"https:\/\/github.com\/llvm\/llvm-project\/tree\/main\/libcxx\/include\">libc++<\/a><br \/>&#8211; <a href=\"https:\/\/github.com\/gcc-mirror\/gcc\/tree\/master\/libstdc%2B%2B-v3\/include\">libstdc++<\/a><\/td>\n<td>&#8211; <a href=\"https:\/\/refspecs.linuxbase.org\/elf\/x86_64-abi-0.99.pdf\">System V A64 ABI<\/a><br \/>&#8211; <a href=\"https:\/\/learn.microsoft.com\/en-us\/cpp\/build\/x64-software-conventions?view=msvc-170\">Windows x64 ABI<\/a><\/td>\n<\/tr>\n<\/table>\n<p>If application and library are build against a different ABI, they won&#8217;t work together.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>They are both interfaces. Interface API ABI Between whom? Application\/Library and library Application\/Library and platform Defined where? Headers of the<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false},"categories":[30],"tags":[],"_links":{"self":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/17999"}],"collection":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17999"}],"version-history":[{"count":4,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/17999\/revisions"}],"predecessor-version":[{"id":18003,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/17999\/revisions\/18003"}],"wp:attachment":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17999"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}