如何将 Unix 库添加到 Visual Studio 以进行交叉编译?

How to add Unix libraries to Visual Studio for Cross Compilation?

我正在尝试在 Visual Studio 上进行交叉编译,但似乎找不到 Unix 库。我收到以下错误:

cannot open source file "unistd.h"
cannot open source file "sys/socket.h"
cannot open source file "netinet/in.h"
cannot open source file "arpa/inet.h"
cannot open source file "netdb.h"

要么是我的 google 游戏很弱,要么就是没有让 VS 找到 Unix 库的答案。

有什么想法吗?

编辑: 澄清一下,这是使用 WSL

的交叉编译

有可能,我个人知道同一设置中的多个项目(VS IDE + non-ms 编译器)。

正如您 cross-compiling,您使用的是 VS IDE,但使用不同的编译器二进制文件(可能是 gccllvm)。

Visual Studio主要是一个IDE(集成开发环境),即编辑源代码调用编译器的GUI程序。它还包含 Microsoft 的 C 编译器(我记得,它叫做 vcc.exe)。它是一个命令行 C 编译器,即它获取源代码,获取许多 header 以及库和编译标志,并从中生成 object 个文件。

VS的很多很多选项IDE是配置和更改标志,用它们调用vcc.exe

当然,这些标志与任何其他编译器二进制文件完全不兼容。例如,对于 vcc,您使用 /INCLUDE 定义 headers,对于 gcc,您使用 -I 来完成相同的任务。您无法从 VS IDE.

设置这些

但是,您可以为其添加简单的额外标志。

VS 也有它的构建机制,nmake,它只与 GNU Make(或其他构建器)部分兼容。您可以在菜单系统中找到构建命令(我记得,它位于 "options" 下面的某处),您可以使用 Cygwin 的 GNU Make 甚至 Ubuntu bash 并将其称为构建命令。