# Librairie problème de compilation (ld erreur)

**URL:** <https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066>\
**Category:** Programmation\
**Created:** [Janvier 30, 2022, 2:57 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066 "2022-01-30T14:57:25Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Didi1](https://www.debian-fr.org/user_avatar/www.debian-fr.org/didi1/32/12829_2.png) [@Didi1](https://www.debian-fr.org/u/Didi1)\
**Post date:** [Janvier 30, 2022, 2:57 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/1 "2022-01-30T14:57:25Z")

</div>

Bonjour à tous,

**Description du projet**  
Aujourd’hui j’écris un petit programme qui doit être capable de lire les informations de Centre d’usinage que l’on trouve dans des usines de mécanique. Pour communiqué avec les machines la société Fanuc fournit une librairie Focas2 que je n’arrive pas incorporer a mon code.

**Description du bug**  
Fanuc donne 2 fichiers :

- Une entête : fwlib32.h
- Un fichier .so : libfwlib32.so.1.0.2

Pour préparer ma machine j’ai :

- Déplacé mon le fichier.so dans /usr/lib
- Réalisé un sudo ldconfig

```auto
xxxxx@debian:/usr/lib$ ls -la | grep fwlib32
lrwxrwxrwx 1 root root 19 30 janv. 15:31 libfwlib32.so.1 -> libfwlib32.so.1.0.2
-rw-r--r-- 1 root root 1374274 30 janv. 15:30 libfwlib32.so.1.0.2

```

Enfin pour compiler j’ai écris :

```auto
g++ -Wall src/BddConn.o src/MachConn.o src/Machine.o src/main.o src/utilitaire.o -o app -std=c++11 -lmariadbcpp -lfwlib32

```

Et il me retourne a chaque fois :

```auto
/usr/bin/ld : ne peut pas trouver -lfwlib32 : Aucun fichier ou dossier de ce type
collect2: error: ld returned 1 exit status

```

**Note :**

- OS : Debian SID
- la compilation sans cette librairie et les fonction associé marche.
- Le programme fonctionne sans la partie communication machine
- J’ai réussis a faire un programme similaire sous windows avec la lib prévu pour
- La documentation linux que fourni Fanuc pour lancer la compil ne marche pas :  
 ![image](https://www.debian-fr.org/uploads/default/original/2X/4/43dcb168415a152b41f0fbd0f1c0d466d7a8c496.png)  
ce qui donne une erreur syntaxe pour le ln

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 30, 2022, 4:31 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/2 "2022-01-30T16:31:32Z")

</div>

Tu peux nous fournir le retour de ça :

```auto
ldvonfig -v | grep libfwlib32

```

---

<div class="post-metadata">

**Author:** ![Didi1](https://www.debian-fr.org/user_avatar/www.debian-fr.org/didi1/32/12829_2.png) [@Didi1](https://www.debian-fr.org/u/Didi1)\
**Post date:** [Janvier 30, 2022, 4:35 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/3 "2022-01-30T16:35:50Z")

</div>

```auto
xxxx@debian:~/Documents/CNC Application Development Kit V01.9/FOCAS2 Library/Fwlib/Linux/x86$ sudo ldconfig -v | grep libfwlib32
ldconfig: Ne peut évaluer par stat /usr/local/lib/x86_64-linux-gnu: Aucun fichier ou dossier de ce type
ldconfig: Chemin « /usr/lib/x86_64-linux-gnu » donné plus d'une fois
(de /etc/ld.so.conf.d/x86_64-linux-gnu.conf:4 et /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
ldconfig: Chemin « /lib/x86_64-linux-gnu » donné plus d'une fois
(de <builtin>:0 et /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
ldconfig: Chemin « /usr/lib/x86_64-linux-gnu » donné plus d'une fois
(de <builtin>:0 et /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
ldconfig: Chemin « /usr/lib » donné plus d'une fois
(de <builtin>:0 et <builtin>:0)
ldconfig: /lib/x86_64-linux-gnu/ld-2.33.so is the dynamic linker, ignoring

	libfwlib32.so.1 -> libfwlib32.so.1.0.2

```

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Janvier 30, 2022, 10:47 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/4 "2022-01-30T22:47:18Z")

</div>

Bonsoir,

> [@Didi1](#):
>
> ```plaintext
> /usr/bin/ld : ne peut pas trouver -lfwlib32 : Aucun fichier ou dossier de ce type
> 
> ```

j’dis ça j’dis rien (surtout à cette heure), mais si le compilateur veut un fichier `fwlib32`, ce que tu lui proposes, `fwlib32.so.1.0.2`, ne lui convient pas…

Pour te conforter dans cette direction, va donc jeter un œil dans le dossier `/lib`, quelques exemples :

```plaintext
lrwxrwxrwx 1 37 févr. 19 2020 libmenuw.so -> /usr/lib/i386-linux-gnu/libmenuw.so.5
lrwxrwxrwx 1 38 févr. 19 2020 libncursesw.so -> /lib/i386-linux-gnu/libncursesw.so.5.9
lrwxrwxrwx 1 36 févr. 19 2020 libpanelw.so -> /lib/i386-linux-gnu/libpanelw.so.5.9
lrwxrwxrwx 1 9 oct. 30 2016 libusb -> libusb.so
lrwxrwxrwx 1 9 nov. 23 2016 libusb-0.1.so.4 -> libusb.so
lrwxrwxrwx 1 39 oct. 30 2016 libusb.so -> /lib/i386-linux-gnu/libusb-0.1.so.4.4.4

```

Si j’étais à ta place, je créerais un raccourci `fwlib32.so` pointant vers `fwlib32.so.1.0.2` et si ça ne suffit pas, un autre raccourci `fwlib32` pointant vers la même cible.

Ça ne coûte rien d’essayer et si ça ne règle pas le 'blème, tu pourras toujours supprimer le(s) raccourci(s) créé(s).

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Janvier 31, 2022, 6:11 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/5 "2022-01-31T06:11:55Z")

</div>

> [@jipete](#):
>
> j’dis ça j’dis rien (surtout à cette heure), mais si le compilateur veut un fichier `fwlib32` , ce que tu lui proposes, `fwlib32.so.1.0.2` , ne lui convient pas…

Le fichier ne s’appelle pas comme ça :

> [@Didi1](#):
>
> ```auto
> xxxxx@debian:/usr/lib$ ls -la | grep fwlib32
> lrwxrwxrwx 1 root root 19 30 janv. 15:31 libfwlib32.so.1 -> libfwlib32.so.1.0.2
> -rw-r--r-- 1 root root 1374274 30 janv. 15:30 libfwlib32.so.1.0.2
> 
> ```

Je me demande si ce n’est pas le préfixe « lib » du nom du fichier qui poserait problème. Essaie de l’enlever (parce qu’il y a assez de « lib » dans le nom du fichier pour qu’on puisse déterminer assez rapidement qu’il s’agit d’une bibliothèque).

---

<div class="post-metadata">

**Author:** ![Didi1](https://www.debian-fr.org/user_avatar/www.debian-fr.org/didi1/32/12829_2.png) [@Didi1](https://www.debian-fr.org/u/Didi1)\
**Post date:** [Janvier 31, 2022, 10:18 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/6 "2022-01-31T10:18:26Z")

</div>

Alors j’ai essayer en créant un lien symbolique dans le dossier lib avec les commande suivante :

```auto
xxxx@debian:/usr/lib$ sudo ln -T libfwlib32.so.1.0.2 libfwlib32.so
xxxx@debian:/usr/lib$ sudo chmod 777 libfwlib32.so

```

Cette fois quand je compile il donne le résultat suivant :

```auto
serrea@debian:~/Documents/workspace/focas_linux$ g++ -Wall src/BddConn.o src/MachConn.o src/Machine.o src/main.o src/utilitaire.o -o app -std=c++11 -lmariadbcpp -lfwlib32
/usr/bin/ld : /usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /lib/../lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /usr/lib/../lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /usr/lib/gcc/x86_64-linux-gnu/11/../../../libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /usr/lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : ne peut pas trouver -lfwlib32 : Aucun fichier ou dossier de ce type
/usr/bin/ld : /usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /lib/../lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /usr/lib/../lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /usr/lib/gcc/x86_64-linux-gnu/11/../../../libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
/usr/bin/ld : /usr/lib/libfwlib32.so ignoré car incompatible lors de la recherche de -lfwlib32
collect2: error: ld returned 1 exit status

```

le résultat de la commande ls :

```auto
xxxx@debian:/usr/lib$ ls -la | grep libfwlib32.so
-rwxrwxrwx 2 root root 1374274 30 janv. 15:30 libfwlib32.so
lrwxrwxrwx 1 root root 19 30 janv. 15:31 libfwlib32.so.1 -> libfwlib32.so.1.0.2
-rwxrwxrwx 2 root root 1374274 30 janv. 15:30 libfwlib32.so.1.0.2

```

Si je fait la même manip et que j’enlève lib devant le nom de ma lib alors ca ne détect plus la librairie dans le test précédent

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Janvier 31, 2022, 11:10 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/7 "2022-01-31T11:10:06Z")

</div>

> [@Didi1](#):
>
> Alors j’ai essayé en créant un lien symbolique dans le dossier lib avec les commandes suivantes :
> 
> ```auto
> xxxx@debian:/usr/lib$ sudo ln -T libfwlib32.so.1.0.2 libfwlib32.so
> xxxx@debian:/usr/lib$ sudo chmod 777 libfwlib32.so
> 
> ```

Ben oui mais le monsieur il avait dit ce matin de ne pas utiliser «&nbsp;lib&nbsp;» devant…

> [@Didi1](#):
>
> Si je fais la même manip et que j’enlève lib devant le nom de ma lib alors ça ne détecte plus la librairie comme avant

et ça la détecte comment ? Tu as eu un message d’erreur et tu ne le donnes pas ? On ne peut pas avancer, comme ça.

En résumé,

> [@Didi1](#):
>
> `/usr/bin/ld : ne peut pas trouver -lfwlib32 : Aucun fichier ou dossier de ce type`

Ça semble pourtant clair, non ?

---

<div class="post-metadata">

**Author:** ![Didi1](https://www.debian-fr.org/user_avatar/www.debian-fr.org/didi1/32/12829_2.png) [@Didi1](https://www.debian-fr.org/u/Didi1)\
**Post date:** [Janvier 31, 2022, 11:33 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/8 "2022-01-31T11:33:30Z")

</div>

> [@jipete](#):
>
> Ben oui mais le monsieur il avait dit ce matin de ne pas utiliser « lib » devant…

Ben oui mais il me semble avoir dit que

> [@Didi1](#):
>
> Si je fait la même manip et que j’enlève lib devant le nom de ma lib alors ca ne détect plus la librairie comme avant

et donc le message d’erreur est toujours le même :

```auto
/usr/bin/ld : ne peut pas trouver -lfwlib32 : Aucun fichier ou dossier de ce type
collect2: error: ld returned 1 exit status

```

> [@jipete](#):
>
> Ça semble pourtant clair, non ?

oui ? et bien éclaire nous de ta sagesse belette expert si c’est aussi simple que ça les problème de linker

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Janvier 31, 2022, 12:00 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/9 "2022-01-31T12:00:38Z")

</div>

> [@Didi1](#):
>
> ```auto
> Aucun fichier ou dossier de ce type
> 
> ```
> 
> …  
> oui ? hé bien éclaire-nous de ta sagesse belette expert si c’est aussi simple que ça les problèmes de linker

Tu as raison : le message d’erreur aurait dû être

> Aucun fichier ou dossier de ce **nom**

Dit autrement, ça donne «&nbsp;je trouve pas `fwlib32`&nbsp;»  
C’est plus clair ?

---

<div class="post-metadata">

**Author:** ![Didi1](https://www.debian-fr.org/user_avatar/www.debian-fr.org/didi1/32/12829_2.png) [@Didi1](https://www.debian-fr.org/u/Didi1)\
**Post date:** [Janvier 31, 2022, 6:32 UTC](https://www.debian-fr.org/t/librairie-probleme-de-compilation-ld-erreur/86066/10 "2022-01-31T18:32:16Z")

</div>

Bon après un peu de réflexion, d’installation d’une VM 32 bit et un cours sur les library, la réponse est très simple : library pour architecture 32 bit et non 64 bit

Maintenant faut que je trouve une librairie compilé pour du 64 bit
