La compilation échoue dans VS2010 pour les programmes C ++ dont la construction s’effectue correctement sous Linux

Mon projet C ++ est construit et fonctionne correctement sous Linux. Maintenant, j’essaie de le comstackr dans VS2010. J’ai apparemment beaucoup d’erreurs de la bibliothèque cmath comme la suivante.

Error 1 error C2061: syntax error : identifier 'acosf' c:\program files\microsoft visual studio 10.0\vc\include\cmath 19 1 MyPROJ 

Je reçois également de nombreuses erreurs de compilation liées aux opérations sur les fichiers, telles que:

 Error 1 error C3861: 'lseek': identifier not found g:\project\file.cc 274 1 MyPROJ Error 2 error C3861: 'write': identifier not found g:\project\file.cc 275 1 MyPROJ 

Comment éliminer ces erreurs.

lseek et write sont des appels unix (posix?) qui ne font pas partie du standard C. Ils sont disponibles sous Windows mais en utilisant les noms _lseek et _write

pas sûr de bien acosf

EDIT: acosf devrait être disponible, êtes-vous inclure math.h

Edit more: En regardant de plus près le message original, l’erreur est dans cmath, ce qui est correct, bien que vous deviez probablement écrire std :: acosf – mais l’erreur est dans le fichier include Cela fonctionne bien lorsque je l’essaie, donc quelque chose avant l’inclusion est probablement en conflit. Qu’y a-t-il avant l’inclusion de cmath dans votre source?

Vous ne pouvez pas porter des programmes Linux sur Windows sans changer un peu les sources car ils utilisent des en-têtes différents

Vous obtiendrez de meilleurs résultats plus facilement si vous utilisez un port du compilateur gcc pour Windows. Essayez mingw32 ou cygwin. Visual Studio est un bon compilateur, mais ce n’est pas la même chose que gcc et ses bibliothèques ne sont pas identiques. Vous devrez donc réécrire certaines parties de votre code source.

Les erreurs que vous obtenez concernent des fonctions manquantes.