Je suis allé chercher l'installation chez
http://www.tdragon.net/recentgcc/
et j'ai chargé les 4 archives nécessaires (gcc-core, mingw-runtime,
binutils et w32-api).
J'ai changé le path pour accéder aux binaires, renseigné les 4 variables
d'environnement OMP_SCHEDULE, OMP_NUM_THREADS, OMP_DYNAMIC, OMP_NESTED.
J'ai ensuite voulu essayer l'exercice
http://www.llnl.gov/computing/tutorials/openMP/samples/C/omp_hello.c
en compilant avec
gcc -fopenmp omp_hello.c
et ça fait une énorme liste d'erreurs.
Je précise que j'avais compilé sans problème des programmes classiques,
sans parallélisme.
Aurais-je oublié qqc ?
Ah
> Je suis allé chercher l'installation chez
> http://www.tdragon.net/recentgcc/
> et j'ai chargé les 4 archives nécessaires (gcc-core, mingw-runtime,
> binutils et w32-api).
Mmh. C'est marant, j'aurais été sur le site de Mingw. Mais bon, cela doit
être équivalent, non ?
Arrivé là, est-ce que ton installation compile ? par exemple, je sais pas
moi, disons hello.c (oui oui, celui qui est dans le bouquin).
> J'ai changé le path pour accéder aux binaires,
Ouïlle.
Question 1 : pourquoi faire ?
Question 2 : quelle était l'ancienne valeur
Question 3 : quelle est la nouvelle
Question 4 : sur quelle version de Windows
Question 5 : dans quel état j'ère ?
Bref, c'est pas nécessaire, sauf bien sûr si tu utilises un GCC du siècle
dernier (et je ne plaisante pas sur la date)
> renseigné les 4 variables d'environnement OMP_SCHEDULE,
> OMP_NUM_THREADS, OMP_DYNAMIC, OMP_NESTED.
J'aime pas du tout le mélange "machin_DYNAMIC" et Mingw. Mais pas du tout.
M'enfin, si tu dis que c'est comme cela que cela doit marcher, je te
crois...
> J'ai ensuite voulu essayer l'exercice
> http://www.llnl.gov/computing/tutorials/openMP/samples/C/omp_hello.c
<Note> je n'ai pas été voir... </Note>
> en compilant avec
> gcc -fopenmp omp_hello.c
> et ça fait une énorme liste d'erreurs.
C'est bien.
Et comme je suis Madame Irma, je vois sur ma boule de cristal de quoi il
s'agit.
Trève de balivernes.
Ou bien tu penses que je vais passer une heure à charger les mêmes
paquetages pour voir si j'ai aussi « une énorme liste d'erreurs ». Et tu te
trompes.
Ou bien tu nous éclaires un peu en nous montrant quelles unes de ces erreurs
en question, histoire de voir de quoi il retourne.
Et tant qu'à faire, tu précises sur quoi tu travailles (machine et version
de GCC, à tout le moins).
Merci
Antoine
La liste d'erreurs :
C:\Documents and Settings\Jerome\Bureau\essaic\para>gcc -fopenmp omp_hello.c
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x10):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x49):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x100):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x130):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x17):
undefined reference to `_imp__pthread_key_create'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x2d):
undefined reference to `_imp__pthread_setspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x4a):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x63):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x90):
undefined reference to `_imp__pthread_mutex_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0xf7):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x23e):
undefined reference to `_imp__pthread_create'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x34d):
undefined reference to `_imp__pthread_setspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x369):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x469):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x4ab):
undefined reference to `_imp__pthread_mutex_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x4bf):
undefined reference to `_imp__sem_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(env.o):env.c:(.text+0x390):
undefined reference to `_imp__pthread_attr_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(env.o):env.c:(.text+0x3a5):
undefined reference to `_imp__pthread_attr_setdetachstate'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(env.o):env.c:(.text+0x46e):
undefined reference to `_imp__pthread_attr_setstacksize'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x2a):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x48):
undefined reference to `_imp__sem_post'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x68):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x7c):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x8e):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0xab):
undefined reference to `_imp__sem_post'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0xcf):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x10f):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x118):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x121):
undefined reference to `_imp__pthread_mutex_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x12d):
undefined reference to `_imp__pthread_mutex_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x13c):
undefined reference to `_imp__sem_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x145):
undefined reference to `_imp__sem_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x167):
undefined reference to `_imp__pthread_mutex_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x17b):
undefined reference to `_imp__pthread_mutex_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x197):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x1b3):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x1e7):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x1f6):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(sem.o):sem.c:(.text+0x15):
undefined reference to `_imp__sem_wait'
collect2: ld returned 1 exit status
C:\Documents and Settings\Jerome\Bureau\essaic\para>
>
> Merci
>
> Antoine
>
> gcc -fopenmp omp_hello.c
> et ça fait une énorme liste d'erreurs.
> Je précise que j'avais compilé sans problème des programmes classiques,
> sans parallélisme.
> Aurais-je oublié qqc ?
oui, je lis :
#include <omp.h>
Bonjour,
Je crois qu'il faut éditer le fichier lib/libgomp.spec et remplacer la ligne
*link_gomp: -lgomp %{static: -lpthread }
par :
*link_gomp: -lgomp -lpthread
--
Bruno Ducrot
-- Which is worse: ignorance or apathy?
-- Don't know. Don't care.
>
> Bonjour,
>
> Je crois qu'il faut éditer le fichier lib/libgomp.spec et remplacer la ligne
> *link_gomp: -lgomp %{static: -lpthread }
> par :
> *link_gomp: -lgomp -lpthread
>
>
C'est ça, merci !!!