J'ai un problème de symbole externe non résolu. J'utilise une bibliothèque compilé en C qui fonctionnait très bien avec la version précédente de Purebasic 64 bit (6.03 LTS), mais il y a une erreur de l'édition de liens avec la version 6.10 LTS.
J'obtiens le message suivant :
Purebasic - Linker error
error: Unresolved external symbo '__imp_tolower -
referenced from 'libastrocalc.a(sweph.o)'
J'ai 2 autres erreurs du même type....(POLINK)
Une explication ??
Merci d'avance,
Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci) assistance informatique, création de logiciels georges.informatique@gmail.com
C'est tout !! Je précise bien que le code fonctionnait parfaitement avec la précédente version de PB. Je suis sous windows 11 64 bits.
Voilà !!
Merci pour votre aide !
Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci) assistance informatique, création de logiciels georges.informatique@gmail.com
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci) assistance informatique, création de logiciels georges.informatique@gmail.com
File la lib si tu veux que l'on teste. Au pire, tu la compiles dans "la" version précédente. (tu peux compiler dans n'importe quelle version du moment que tu indiques le path du compiler dans les paramètres de compilation de l'ide).
Tu es sur d'avoir compilé en x64 la dernière fois ou en x86 ? Est-ce pareil cette fois ?
C'est un peu léger comme sos
La lib est écrite en C. Si c'était du purebasic, je n'aurais pas eu de problème du tout !!
Mais je le répète, la lib était bien liée statiquement avec la version précédente de purebasic.
Bon, je pense qu'il faut se pencher sur le code C de la dite lib. Mais enfin, pourquoi elle se liait bien avec la version précédente ??
Elle est compilée avec Code Block, compilateur GCC....
Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci) assistance informatique, création de logiciels georges.informatique@gmail.com
Ta lib n'est tout simplement pas compatible avec ta version de purebasic.
Recompile ta lib externe avec une version dont le CRT identique à celui qu'utilise PB.
regarde la dernière màj de pb , regarde la version du CRT pour windows qu'utilise PB ( c'etait un vieux , mais cela a du changé )
c'est mieux de compilé avec visual studio sous windows ( quelle version ? j'en sais rien )
tu peu viré le CRT avec /NODEFAULTLIB en option de compilation.
Oui comme le dit G-Rom mais faut utiliser les derniers versions du soft comme développement, c'est à dire si tu es à l'aise de GCC je te conseille le https://www.msys2.org/ c'est de la GCC mise à jour récemment mais c'est d’environnement du ligne commande... Sinon si tu veux comme IDE donc prends Visual Studio Community 2022 le soft est gratuit 100% et familiarise toi sur comment tu utilises. Donc voilà Fred a du enlevé le CRT ancien version et mis à la place UCRT plus recent et Msys2 ou Visual Studio community 2022 l'utilisent cette dernière version. Si tu as installé le Msys2 sur ta machine en x64 et tu pourra avoir besoin de faire sa en tapant la commande en ligne de Msys2 : pacman -S mingw-w64-ucrt-x86_64-gcc
Ok j'ai fait un test sur Msys2 écrit en C et compilé avec GCC pour la lib, il marche bien sur Purebasic comme import et la fonction fonctionne plutôt bien
Ca marche, j'ai supprimé purement et simplement les appels CRT dans le code C, j'ai recompilé la librairie, et là ça marche.
Bon conseil d'utiliser Visual Studio Community 2022
Merci encore !
Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci) assistance informatique, création de logiciels georges.informatique@gmail.com