如何将 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,但使用不同的编译器二进制文件(可能是 gcc
或 llvm
)。
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 并将其称为构建命令。
我正在尝试在 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,但使用不同的编译器二进制文件(可能是 gcc
或 llvm
)。
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 并将其称为构建命令。