Quelles sont les causes possibles, que gcc ne lie pas à math.h
même si j'ai défini l'indicateur -lm
?Math.h introuvable même si `-lm` est défini
[email protected]$ g++ template_gold.cpp -o template_gold -lm
template_gold.cpp: In function ‘void computeGold(valpoint*, centroid*, int)’:
template_gold.cpp:68: error: ‘max’ was not declared in this scope
template_gold.cpp:70: error: ‘abs’ was not declared in this scope
Je suis désolé, si cela est dupe, mais la recherche des googles et donc j'ai trouvé seul poste suggérant de fixer le -lm
.
Offending code
#include <math.h>
#include "kmeans.h"
extern "C"
void computeGold(valpoint* h_idata, centroid* h_centroids, int numClusters);
...
for (long valindex = 0; valindex<1024*1024; valindex++)
{
minDistance = 0xFFFFFFFF;
for (k = 0; k<numClusters; k++)
if (max((long)(h_idata[valindex].value - h_centroids[k].value))<minDistance)
{
minDistance = abs((long)(h_idata[valindex].value - h_centroids[k].value));
myCentroid = k;
}
h_idata[valindex].centroid = h_centroids[myCentroid].value;
}
}
Dans ce code, vous semblez utiliser «-Im» plutôt que «-lm»? Il devrait être en minuscule L – poundifdef
Pourquoi avez-vous '-Im' dans la ligne de commande plutôt que' -lm'? (Pas que ce soit quelque chose à voir avec vos erreurs de compilation). –
Vous devez poster le code autour des lignes 65 - 75 et aussi montrer ce que #includes vous avez –