Page 1 sur 1
[Resolu] Symbole externe version 6.10 LTS
Publié : ven. 29/mars/2024 17:29
par Philippe_GEORGES
Bonjour
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
Re: Symbole externe non résolu version 6.10 LTS
Publié : ven. 29/mars/2024 18:11
par threedslider
Hello,
Il nous faut du code pour savoir quel est le problème ? Sinon on sait pas trop sur ça...
Montre nous ou explique avec tes codes, stp? Merci.
Re: Symbole externe non résolu version 6.10 LTS
Publié : ven. 29/mars/2024 19:05
par Mindphazer
Oui, il faudrait un bout de code...
Du plus, il me semble que tu es sur Mac ?
Tu as l'erreur sur Mac ou PC ?
Bref, il nous faudrait un peu plus d'infos

Re: Symbole externe non résolu version 6.10 LTS
Publié : ven. 29/mars/2024 23:34
par Philippe_GEORGES
Je suis sur PC actuellement. Le code d'intégration de la bibliothèque de fonctions est le suivant.
CompilerIf #PB_Compiler_OS <> #PB_OS_MacOS
Import "libastrocalc.a"
CompilerElse
Import "libastrocalcmacos.a"
CompilerEndIf
swe_calc_ut(tjd.d,ipl.l,Iflag.l,*x,serr.s)
swe_deltat(tjd.d)
swe_sidtime(tjd.d)
swe_houses_armc(armc.d,geolat.d,eps.d,ihsy.l,*cusp,*ascmc)
swe_set_ephe_path(Path.p-ascii)
EndImport
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
Re: Symbole externe non résolu version 6.10 LTS
Publié : sam. 30/mars/2024 8:50
par threedslider
Si tu es sur PC, tu devrais faire cela plutôt :
Re: Symbole externe non résolu version 6.10 LTS
Publié : dim. 31/mars/2024 10:26
par Philippe_GEORGES
Celà ne change rien du tout !
L'erreur reste persistante.
Phil
Re: Symbole externe non résolu version 6.10 LTS
Publié : dim. 31/mars/2024 17:15
par Ar-S
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
Re: Symbole externe non résolu version 6.10 LTS
Publié : dim. 31/mars/2024 17:47
par Philippe_GEORGES
Bonjour
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
Re: Symbole externe non résolu version 6.10 LTS
Publié : dim. 31/mars/2024 21:19
par G-Rom
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.
Re: Symbole externe non résolu version 6.10 LTS
Publié : lun. 01/avr./2024 0:25
par threedslider
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
Voila, happy coding !
Re: Symbole externe non résolu version 6.10 LTS
Publié : lun. 01/avr./2024 1:14
par threedslider
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
J'ai tout zipper en fichier tu pourras tester si tu veux :
https://drive.google.com/file/d/1tDfZn2 ... sp=sharing
Re: Symbole externe non résolu version 6.10 LTS
Publié : lun. 01/avr./2024 6:19
par boddhi
Re: Symbole externe non résolu version 6.10 LTS
Publié : lun. 01/avr./2024 13:09
par Philippe_GEORGES
Problème résolu !
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
Re: [Resolu] Symbole externe version 6.10 LTS
Publié : mer. 03/avr./2024 20:13
par Ar-S
J'ai édité le sujet de ton 1er post. Pense à le faire lorsque ton soucis est résolu.