我试图在linux下为windows编译 . 我已经为linux和w64-mingw安装了binutils multilib . 如果我使用x86_64-w64-mingw-gcc编译一切正常,但如果我使用clang -target x86_64-w64-mingw或x86_64-windows-gnu编译器给我很多警告和windows.h的包含错误 .
问题是什么? Clang不支持mingw binutils?
附:我也对freebsd的cross-compilig感兴趣,在哪里可以找到针对freebsd的binutils?
非常感谢你提前:)
2 回答
-target
是不够的,你还需要指定包含目录,即:您可能会发现我的项目很有用:https://github.com/tpoechtrager/wclang - 该工具正在执行所有令人讨厌的包含目录搜索 .
我的ELLCC项目包与库有关,包括可以定位多个目标的文件,包括各种Linux目标和使用MinGW-64包含的Windows和库 . 我有一个稍微修改过的clang版本,我称之为 ecc ,它支持配置文件以指定获取包含文件的位置,如何链接等.clang / mingw的典型配置文件看起来像this . 我've modified clang' s -target选项检查适用的配置文件并使用它(如果存在) . 例如,要以64位Windows为目标,使用命令行
为例如编译相同的程序在ARM Linux系统中,您可以使用命令行
支持的目标的完整列表是available here . 各种Linux主机和Windows的预编译二进制包是available . 这些软件包包括支持所有目标的binutils和GDB .