[Resolu] Symbole externe version 6.10 LTS

Programmation d'applications complexes
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 138
Inscription : mer. 28/janv./2009 13:28

[Resolu] Symbole externe version 6.10 LTS

Message 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
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Avatar de l’utilisateur
threedslider
Messages : 452
Inscription : dim. 01/juil./2018 22:38

Re: Symbole externe non résolu version 6.10 LTS

Message 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.
Avatar de l’utilisateur
Mindphazer
Messages : 693
Inscription : mer. 24/août/2005 10:42

Re: Symbole externe non résolu version 6.10 LTS

Message 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 :mrgreen:
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 138
Inscription : mer. 28/janv./2009 13:28

Re: Symbole externe non résolu version 6.10 LTS

Message 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
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Avatar de l’utilisateur
threedslider
Messages : 452
Inscription : dim. 01/juil./2018 22:38

Re: Symbole externe non résolu version 6.10 LTS

Message par threedslider »

Si tu es sur PC, tu devrais faire cela plutôt :

Code : Tout sélectionner

CompilerIf #PB_Compiler_OS <> #PB_OS_Windows
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 138
Inscription : mer. 28/janv./2009 13:28

Re: Symbole externe non résolu version 6.10 LTS

Message par Philippe_GEORGES »

Celà ne change rien du tout !

L'erreur reste persistante.

Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Symbole externe non résolu version 6.10 LTS

Message 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
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 138
Inscription : mer. 28/janv./2009 13:28

Re: Symbole externe non résolu version 6.10 LTS

Message 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
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Symbole externe non résolu version 6.10 LTS

Message 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.
Avatar de l’utilisateur
threedslider
Messages : 452
Inscription : dim. 01/juil./2018 22:38

Re: Symbole externe non résolu version 6.10 LTS

Message 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 !
Avatar de l’utilisateur
threedslider
Messages : 452
Inscription : dim. 01/juil./2018 22:38

Re: Symbole externe non résolu version 6.10 LTS

Message 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
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Symbole externe non résolu version 6.10 LTS

Message par boddhi »

Avatar de l’utilisateur
Philippe_GEORGES
Messages : 138
Inscription : mer. 28/janv./2009 13:28

Re: Symbole externe non résolu version 6.10 LTS

Message 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
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [Resolu] Symbole externe version 6.10 LTS

Message par Ar-S »

J'ai édité le sujet de ton 1er post. Pense à le faire lorsque ton soucis est résolu.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre