(Application Binary Interface) spécifie l'interface de bas niveau entre les programmes, les bibliothèques et le système d'exploitation. Par exemple. quels registres sont utilisés pour transmettre les paramètres de fonction.

Plus à propos abi...

Je génère du code machine pour appeler des fonctions à partir de bibliothèques système existantes. La plupart des bibliothèques système ont été écrites en C, je vais donc prendre C comme exemple, mais la question s'applique probablement à n'importe quel autre langage. Si je comprends cette réponse ....
5 mars 2021 à 14:47
Test.c (métal nu) #include <stdio.h> int add1(int a, int b) { int c; c = a + b; return c; } int main() { int x, y, z; x = 3; y = 4; z = add1(x,y); printf("z = %d\n", z); } Je fais aarch64-none-elf-gcc test.c -specs=rdimon.specs et j'obtiens a.out. Je fais aarch64-none-elf-objdump -d a.out et j'a....
8 févr. 2021 à 12:09
Dans la norme C99, ils ont introduit long long. Quel est le but de cela? Dans mon expérience de programmation C (limitée), je n'ai jamais vu qu'un entier de 4 octets et un long de 8 octets. Par exemple, à partir de l'Explorateur de compilateurs: Si long est déjà 8 alors, pourquoi est-il nécessa....
10 janv. 2021 à 01:20
Il n'y a pas de concept d ' ABI (Application Binary Interface) dans Hyperledger fabric comme il existe dans Ethereum / Quorum. Un fichier ABI dans Quorum est généré lors de la compilation du contrat intelligent (chaincode), qui est ensuite utilisé par l'application client comme référence à la déf....
J'ai essayé d'installer mon application sur un appareil Android9 x86, cela a échoué avec une erreur: INSTALL_FAILED_NO_MATCHING_ABIS J'ai beaucoup cherché et essayé toutes les solutions aboutit à un échec. Ajouté abiFilters et divise abi en gradle, toujours confronté au problème. Je sais qu'il y a b....
Je regarde la conférence de Chandler Carruth à la CppCon 2019: Il n'y a pas d'abstractions à coût nul Dans celui-ci, il donne l'exemple de la façon dont il a été surpris par combien de frais généraux vous encourez en utilisant un std::unique_ptr<int> sur un int*; ce segment commence environ au momen....
11 oct. 2019 à 13:19
Problème: Je connecte une nouvelle bibliothèque partagée au projet. Il est chargé avec des liens dynamiques d'exécution. Cette nouvelle bibliothèque partagée appelle une autre bibliothèque partagée. Si le projet est compilé avec l'indicateur -O0 - tout fonctionne bien. Si le projet est compilé ave....
Je me demandais si le compilateur utiliserait un rembourrage différent sur les systèmes 32 bits et 64 bits, j'ai donc écrit le code ci-dessous dans un simple projet de console VS2019 C ++: struct Z { char s; __int64 i; }; int main() { std::cout << sizeof(Z) <<"\n"; } Ce que j'attendai....
30 avril 2019 à 14:38
Je sais qu'un "comportement indéfini" en C ++ peut à peu près permettre au compilateur de faire tout ce qu'il veut. Cependant, j'ai eu un crash qui m'a surpris, car je supposais que le code était suffisamment sûr. Dans ce cas, le vrai problème ne s'est produit que sur une plate-forme spécifique ut....
10 janv. 2019 à 04:39
Je suis curieux de savoir si le fait de marquer une classe C ++ dérivée existante comme final pour permettre les optimisations de dé-virtualisation changera ABI lors de l'utilisation de C ++ 11. Je m'attends à ce que cela n'ait aucun effet car je vois cela principalement comme un indice pour le comp....
20 nov. 2018 à 10:10
Pour une application Windows 32 bits, est-il valide d'utiliser la mémoire de la pile sous ESP pour un espace de swap temporaire sans décrémenter explicitement ESP? Prenons une fonction qui renvoie une valeur à virgule flottante dans ST(0). Si notre valeur est actuellement dans EAX, nous pourrions, p....
10 sept. 2018 à 16:00
Je suis nouveau sur Unity, j'essaie d'intégrer le jeu Unity (il a ARcore) dans l'application Android native. Je suis capable de lancer unity dans une nouvelle application HelloWorld mais je ne parviens pas à la lancer dans ma vraie application (qui a d'autres modules). Remarque: lorsque je crée une ....
22 août 2018 à 05:27
Mon application Android Studio utilise OpenCV et le NDK. L'apk était trop gros alors j'ai décidé que je ne voulais pas prendre en charge les périphériques x86 (je veux uniquement prendre en charge armeabi-v7a et arm64-v8a), donc le support de l'ABI x86 a été supprimé par le développeur C ++ et il n'....
19 mai 2018 à 06:45
Supposons que j'ai trois objets compilés, tous produits par le même compilateur / version : A a été compilé avec le standard C ++ 11 B a été compilé avec le standard C ++ 14 C a été compilé avec le standard C ++ 17 Par souci de simplicité, supposons que tous les en-têtes ont été écrits en C ++ 11, ....
14 oct. 2017 à 19:36
J'ai deux morceaux de code: Le premier, dans un programme C ++, est l'endroit où je charge et appelle une fonction depuis un test_lib.so externe: typedef void *(*init_t)(); // init_t is ptr to fcn returning a void* typedef void (*work_t)(void *); // work_t is ptr to fcn taking a void* void *lib = d....
4 mai 2017 à 08:00
En supposant l'ABI x86-64 sous Linux, dans quelles conditions en C ++ les structures sont-elles passées aux fonctions dans les registres par rapport à la pile? Dans quelles conditions sont-ils renvoyés dans les registres? Et la réponse change-t-elle pour les cours? Si cela permet de simplifier la ....
23 févr. 2017 à 12:35