我有一个最近从Solaris移植到Linux的大型C / C ++项目。我正在使用vagrant / virtualbox虚拟机建立一个通用的linux开发环境。我认为允许开发人员在一个vagrant synced文件夹中将源代码保存在他们的主机上,然后在来宾操作系统中构建它是个好主意。但是,每当我在来宾虚拟机中构建源时,GCC都会以某种方式失败,并带有以下内容:
In file included from foobar.cpp:72:
../foobar.h:270: error: ‘uint32_t’ does not name a type
../foobar.h:273: error: ‘uint32_t’ does not name a type
../foobar.h:304: error: ‘WordCountType’ does not name a type
所以,似乎我们错过了对stdint.h的包含权吗?好吧,我实际上可以为此添加一个include并继续编译(直到遇到其他问题)。
神秘的部分是,如果我将源代码从客户机上的同步文件夹移动到不在vboxsf挂载中的文件夹并再次运行构建。一切正常,编译也成功完成。
这里发生了什么?