Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Les Mains dans le Cambouis
Bidouille & Développement Informatique

Sujet Le pub des programmeurs

  • 1 925 réponses
  • 117 participants
  • 119 797 vues
  • 130 followers
1 Le pub des programmeurs
Salut :coucou: y a des programeurs sur AF si oui vous bossez sous quoi ?
Afficher le premier post
1561
Merci pour la précision...

J'avais jamais entendu parlé de cette version de Catia (produit IBM d'après Wikipédia)...
Pourtant j'ai bossé 21 ans pour Big blue:-p
AL1

[ Dernière édition du message le 01/02/2017 à 13:40:33 ]

1562
Et voilà pour Cadence :
https://en.wikipedia.org/wiki/Cadence_Design_Systems

Merde ! Je suis un nerd :|
1563
Petite question de noob :
Je voudrais installer et utiliser la librairie fftw pour faire des fft en C sous linux. Pour ça je l'ai récupérée ici http://www.fftw.org/doc/Installation-on-Unix.html
Du coup je l'ai téléchargée, j'ai fait
cd /mondossier/fftw
./configre
make
make-install

pour la suite j'ai pris un bout de code que j'ai trouvé sur le net qui permet en gros un exemple pour tester la librairie https://github.com/undees/fftw-example/blob/master/fftw_example.c
du coup pour compiler je fait

gcc -fftw3 main.c -o main

mais gcc me renvoie des erreurs suivantes

undefined reference to 'fftw_plan_dft_1d'
undefined reference to 'fftw_execute'
undefined reference to 'fftw_destroy_plan'

et plus bizarre encore ces erreurs ci
undefined reference to 'cos'
undefined reference to 'sin'
undefined reference to 'sqrt'

la pour le coup je comprends vu que ce sont des fonctions de la librairie standard quelqu'un voit d'où ça pourrait venir ?
1564
Des problèmes de chemins pour trouver les include et librairies ?

Fais un makefile. Ça ne resoudra pas le problème, mais ce sera plus facile à mettre au point puis réutiliser.

[ Dernière édition du message le 01/02/2017 à 19:56:35 ]

1565
#include <fftw3.h> aussi

un lien à potentiel dénoobifiant : http://www.fftw.org/doc/Data-Types-and-Files.html#Data-Types-and-Files

[ Dernière édition du message le 01/02/2017 à 19:58:09 ]

1566
Un makequoi ? :oops:

le #include <fftw3.h> est déjà dans mon code C :bravo:
1567
As-tu toutes les dépendances installées (librairies) ?
Si il en manque une, c'est foutou...
AL1

[ Dernière édition du message le 01/02/2017 à 20:03:31 ]

1568
Citation de Patrick :
Un makequoi ? :oops:

le #include <fftw3.h> est déjà dans mon code C :bravo:

Oui mais il faut probablement indiquer par une directive -I le répertoire où se trouvent les fichiers.h et par une directive -L le répertoire où trouvent les librairies, notamment celle de fftw qui ne doit pas être dans un répertoire habituel.

Cherche "tutoriel makefile" ;)


EDIT comme mentionné par le lien d'idlusen :

Citation :
You must also link to the FFTW library. On Unix, this means adding -lfftw3 -lm at the end of the link command.


Essaie en ajoutant ça dans ta commande gcc.

Sinon il va falloir creuser et comprendre comment fonctionne tout ce bordel, mais ce ne sera pas du temps perdu, au contraire.

[ Dernière édition du message le 01/02/2017 à 20:07:44 ]

1569
Oui, c'est bien ca, il faut dire au compilateur d'aller chercher la librairie.

Pour la lib math, ca devrait se faire tout seul, c'est standard, le "-lm" suffira. Par contre pour la lib fftw, comme tu l'as compilée en local il faut aussi spécifier le chemin vers la librairie, un truc du genre "-L /mondossier/fftw/bin" (l'endroit où se trouve le fichier libfftw.a).
Ou alors tu fais le "make install" qui copiera libfftw.a dans le /usr/lib/quelquechose qui va bien.

Tu te serais épargné cette dernière difficulté en installant directement fftw avec le gestionnaire de paquets de ta distribution Linux. Un truc comme "apt-get install fftw" sur Debian ou Ubuntu.
1570
Les fichiers header *.h ne contiennent sur la description de l'interface des fonctions codées ; du genre "elle prend deux int et elle sort 1 int".

Les fichiers avec le code C doivent inclure ces headers pour pouvoir être compilés malgré les fonctions "externes" des lib : On ne sait pas ce qu'il y a dedans mais en s'en fout parce que l'on sait quoi lui mettre et ce que l'on récupère grâce au header.

Il faut donc compiler un à un chaque fichier contenant du code (main, libs) dans lequel il y a les includes nécessaires et on obtient autant de fichiers compilés.

Et enfin, il faut lier les fichiers entre-eux (link, in english) qui s'emboîtent tous grâce aux headers.

Un makefile c'est un fichier qui contient un script pour autoriser les compilations / link.