J'ai compilé GDC avec GCC à l'aide du script Android Build-gcc.sh et avez inclus un nouveau talon dans la construction / Core / définition.mk pour traiter des fichiers de langue D dans le cadre du processus de construction. Je sais que les choses sont en train de compiler ok à ce stade, mais mon problème relie:
Lorsque je construis un projet, je reçois cette erreur: P>
ld: crtbegin_so.o: No such file: No such file or directory
4 Réponses :
Le problème se pose également sur NDK R7C pour Linux.
J'ai trouvé que la boîte à outils ignore l'emplacement de la plate-forme ($ ndk_root / plates-formes / android-8 / arc-bras / usr / lib /) Je> et la recherche dans le chemin d'accès à la boîte à outils, qui est incorrecte. P>
Cependant, comme lache de la liste d'outils recherche également le fichier dans le répertoire actuel, une solution consiste à symboliser la plate-forme correcte crtbegin_so.o et crtend_so .o dans le répertoire source: p>
p> Ainsi Votre deuxième point devrait fonctionner (où vous pouvez faire un lien symbolique, au lieu d'une copie) p> note 1: b> Cela suppose que le code est compilé pour API8 (Android 2.2) en utilisant le NDK. S'il vous plaît modifier le chemin du chemin correct selon votre condition. P> Note 2: B> Configurer les indicateurs utilisés: P> CD src && ln -s ndk_root / plates-formes / Android-8 / Arch-arch-bras / USR / LIB / CRTBEGIN_SO.A CODE> P> P>
cd src && ln -s ndk_root / plates-formes / android-8 / arc-arche / usr / lib / crtend_so.a code> p>
./configure \
--host=arm-linux-androideabi \
CC=arm-linux-androideabi-gcc \
CPPFLAGS="-I$NDK_ROOT/platforms/android-8/arch-arm/usr/include/" \
CFLAGS="-nostdlib" \
LDFLAGS="-Wl,-rpath-link=$NDK_ROOT/platforms/android-8/arch-arm/usr/lib/ -L$NDK_ROOT/platforms/android-8/arch-arm/usr/lib/" \
LIBS="-lc"
C'est génial, merci! Maintenant, je peux construire du GDC contre la boîte à outils Android.
J'ai rencontré le même problème dans deux cas distincts:
boost code>
pour Android Li>
Android-Cumake Code>
projet. li>
ol> Une fois que je suis passée à boost spécifique strud> p> pour boost Vous avez besoin de spécifier Toolchain autonome CODE> Emission GELÉ, voici l'exemple de commande qui préparez
Toolchain autonome code> p>
- sysroot code> plusieurs fois dans votre
Jam code> p>
J'ai trouvé que l'ajout ne peut pas ouvrir crtbegin_so.o: aucun fichier ou répertoire de ce type p>
blockQuote> de mon maquillage ... p> Remarque: cela suppose que le setenv-android.sh a été exécuté pour configurer l'environnement - sysroot = $ (sysroot) code> sur les options du compilateur corrige l'erreur:
$. ./setenv-android.sh P> P>
Dans VS2019, comme cela fait partie de la phase de liaison, je devais ajouter - sysroot = "$ (sysrotlink)" code> sur les options de ligne de commande de liaison
Dans mes citations de cas, il manquait le chemin de Sysroot.
Lorsque j'ai changé à p> Le projet a été compilé et lié avec succès. P> P>
Stackoverflow.com/Questtions/7400124/... résolu pour moi :)