在VS2010中编译失败的C ++程序在Linux中正常工作

我的C ++项目在Linux上构build和运行良好。 现在我正试图在VS2010中编译它。 我从cmath库中看到很多错误,如下所示。

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

此外,我得到许多文件操作相关的编译错误,如:

 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 

如何消除这些错误。

lseek和write是不是C标准的一部分的unix(posix?)调用。 它们在Windows上可用,但使用名称_lseek和_write

不确定关于acosf

编辑:acosf应该可用,你包括math.h

编辑更多:仔细查看原来的帖子错误是在cmath这是很好,虽然那么你可能必须写std :: acosf – 但错误是在包含文件。 当我尝试它时,它的工作正常,所以包含之前可能会有冲突。 什么是在你的来源包括cmath之前?

你不能在windows上移植linux程序,因为它们使用不同的头文件

如果你使用Windows的gcc编译器的某个端口,你会更容易得到更好的结果。 尝试mingw32或cygwin。 Visual Studio是一个好的编译器,但它与gcc不一样,并且没有相同的库,所以你需要重写源代码的一些部分。

你得到的错误是关于缺少的功能。