为 Windows 实现自定义 unistd.h 以在 Visual Studio 上工作 - 问题

Posted

技术标签:

【中文标题】为 Windows 实现自定义 unistd.h 以在 Visual Studio 上工作 - 问题【英文标题】:Implementing a custom unistd.h for windows to work on Visual Studio - problems 【发布时间】:2016-03-24 16:55:23 【问题描述】:

我继承了最初为 linux 编写的 dll 文件的源代码。不幸的是,我正在使用 Windows 和 Visual Studio,而对 linux 的更改是不可能的。特别是,其中一个类需要 unistd.h。

由于 windows 没有 unistd.h 之类的东西,我尝试按照 what was nicely written here.

我创建了一个头文件 unistd.h 并将其添加到我的项目的头文件中(我还根据this 制作了一个自定义 getopts。不幸的是,这并没有解决我的问题 - 我的代码不会构建,因为我不断得到

Cannot open include file: 'unistd.h': No such file or directory

我的自定义 unistd.h 在我的解决方案的头文件中,所以我完全不明白出了什么问题。我已经使用了

#include "unistd.h"

因为它是一个自定义标题。

我们将不胜感激任何建议和帮助。感谢您的关注。

【问题讨论】:

很难看出您的代码有什么问题,因为您没有发布任何代码。您至少可以在包含标题的位置发布 sn-p。 试试#include "unistd.h"而不是#include <unistd.h> 【参考方案1】:

看来您的所有头文件和源文件都应该在同一个 VS 项目文件夹中 - 原始头文件和源文件在我的计算机上的另一个文件夹中,在创建新项目后,我使用添加现有项目并找到并选择它们添加。

我稍后通过向项目添加新项目创建的 unistd.h 文件 - 实际上两个文件组位于两个不同的位置,这导致他们没有“看到”自定义 unistd.h 的事实。这不是代码或我包含头文件的方式的问题,而是文件的放置问题。

【讨论】:

以上是关于为 Windows 实现自定义 unistd.h 以在 Visual Studio 上工作 - 问题的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向ART 函数抽取加壳 ⑤ ( unistd.h#execve 函数分析 | 使用自定义的 myexecve 函数替换 libc.so#execve 函数 )

无法打开包含文件:'unistd.h':没有这样的文件或目录

linux系统调用包含啥头文件

Linux 0.11中write实现

Python 安装zbar-py时出现 无法打开包括文件: “unistd.h” no such file or directory

Linux原生C库。如何配置Visual Studio代码在Windows上使用它们?