Dans mon code, j'utilise abondamment la fonction sqrt. avec en en-tête math.h.
Comment se fait il que mon compilateur me renvoie
Mon code de départ est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /tmp/cceCaiXt.o: In function `minimum_local': pdb.c:(.text+0x852): undefined reference to `sqrt' pdb.c:(.text+0xa1d): undefined reference to `sqrt'Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 int minimum_local(int r1, int r2) { int s1, s2; float dist, dist2; dist = sqrt((residue[r1].x - residue[r2].x)*(residue[r1].x - residue[r2].x)+(residue[r1].y - residue[r2].y)*(residue[r1].y - residue[r2].y)+(residue[r1].z - residue[r2].z)*(residue[r1].z - residue[r2].z)); for (s1 = r1-1; s1 <= r1+1; s1++) for (s2 = r2-1; s2 <= r2+1; s2++) { if (s1 == r1 && r2 == s2) continue; if (s1 < 0 || s1 >= nres || s2 < 0 || s2 >= nres) continue; if (residue[s1].chain_id != residue[r1].chain_id || residue[s2].chain_id != residue[r2].chain_id) continue; dist2 = sqrt((residue[s1].x - residue[s2].x)*(residue[s1].x - residue[s2].x) + (residue[s1].y - residue[s2].y)*(residue[s1].y - residue[s2].y) + (residue[s1].z - residue[s2].z)*(residue[s1].z - residue[s2].z)); if (dist2 < dist) return 0; } return 1; }
Partager