5

当我在 vs2010 x64 模式下编译我的 C++ 解决方案时,我得到以下编译问题。 Can not open include file 'sys/param.h' :No such file or directory.

但在 Win32 模式下也可以正常编译。

我不确定这个头文件是怎么丢失的。有人可以帮我吗?我正在使用一些客户端标头,这是客户端文件中存在的以下代码部分。
#ifndef WIN32
#include <sysipc.h>
#include <sys/param.h>
#endif

4

2 回答 2

2

这很可能是某些#if错误的结果 - 例如,它正在检查_M_IX86,并且它没有在 64 位系统上设置,它会选择非 Windows 的东西并尝试编译它。

sys/param.h是一个 unix/linux 头文件,你不应该期望在你的 Windows 系统中找到它。[编辑:除非您使用了 GNU 编译器的某个版本或对 MSVC 构建环境的编译工具核心进行了一些其他修改]

不幸的是,没有看到源代码,我们所能做的就是解释可能的原因......

于 2013-08-20T11:26:58.677 回答
2

包含#include <sysipc.h>应该是#include <sys/ipc.h>,但是,这是一个 POSIX 头文件,适用于 Linux 构建项目,因此它不适用于任何 Visual Studio 项目。由于您正在为 x64 进行编译,因此默认情况下可能不会设置 WIN32 标志。

尝试将宏更改为:

#ifndef _MSC_VER
#include <sys/ipc.h>
#include <sys/param.h>
#endif // !_MSC_VER

希望有帮助。

于 2015-07-08T17:54:46.820 回答