如何在Ubuntu for Win32上交叉编译Clang?

菲尔·布沙德
  1. 我下载并提取了以下内容:
    http : //releases.llvm.org/5.0.1/llvm-5.0.1.src.tar.xz
    http://releases.llvm.org/5.0.1/cfe-5.0.1。 src.tar.xz

  2. 然后:

$ mv cfe-5.0.1.src llvm-5.0.1.src/tool/clang
  1. 创建了以下llvm-5.0.1.src/mingw_cross_toolchain.cmake文件:
set(CMAKE_SYSTEM_NAME Windows)
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)

# cross compilers to use for C and C++
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc-posix)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++-posix)
set(CMAKE_Fortran_COMPILER ${TOOLCHAIN_PREFIX}-gfortran)
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)

# target environment on the build host system
#   set 1st to dir with the cross compiler's C/C++ headers/libs
set(CMAKE_FIND_ROOT_PATH /usr/lib/gcc/${TOOLCHAIN_PREFIX}/7.3-posix)

# modify default behavior of FIND_XXX() commands to
# search for headers/libs in the target environment and
# search for programs in the build host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
  1. 然后:
$ cd llvm-5.0.1.src
$ mkdir build
# cd build
$ cmake -D CMAKE_TOOLCHAIN_FILE=../mingw_cross_toolchain.cmake
  1. 然后在下面build/NATIVE/include/llvm/Config/llvm-config.h我有:
/* Define if this is Unixish platform */
#define LLVM_ON_UNIX 1

/* Define if this is Win32ish platform */
/* #undef LLVM_ON_WIN32 */

这会使构建失败。由于LLVM_ON_WIN32依赖于WIN32标志,因此我尝试在命令行上以及在mingw_cross_toolchain.cmake可惜的情况下定义该标志,但对generate无效build/NATIVE/include/llvm/Config/llvm-config.h

我们如何正确定义WIN32标志?

菲尔·布沙德
  1. 好的,因此我需要通过将标志设置为以下内容来强制cmake/modules/HandleLLVMOptions.cmake执行:
set(WIN32 1)
set(UNIX 0)
  1. 然后,我需要能够执行将来的中间Win32可执行文件:
$ sudo apt-get install wine-binfmt
$ sudo update-binfmts --import /usr/share/binfmts/wine
  1. 之后,我需要设置WINEPATH来查找DLL:
$ export WINEPATH="/usr/x86_64-w64-mingw32/lib/;/usr/lib/gcc/x86_64-w64-mingw32/7.3-posix"

现在,我将能够正确交叉编译所有内容!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在x64主机上交叉编译AArch64的LLVM / Clang?

来自分类Dev

如何在ipad mini 3上交叉编译iOS8.x的clang / llvm 3.7.0?

来自分类Dev

在ubuntu上交叉编译Boost 1.57.0 for arm

来自分类Dev

如何在不编译的情况下在Win32机器上安装pycurl

来自分类Dev

如何在Ubuntu 18.04上安装交叉编译器?

来自分类Dev

如何为iOS交叉编译clang / llvm?

来自分类Dev

如何判断是否为PE Win32启用了/ GS编译器

来自分类Dev

当副本包含空格时,如何使用bazel在docker build图像上交叉编译tensorflow-serving

来自分类Dev

如何在Win32程序中设置以记住大小

来自分类Dev

如何在Ubuntu中安装clang格式

来自分类Dev

如何在Ubuntu上编译.java文件?

来自分类Dev

如何在Ubuntu上编译.java文件?

来自分类Dev

如何在Ubuntu 14.04上编译Blender?

来自分类Dev

如何在Ubuntu机器上编译fdm?

来自分类Dev

如何禁用按钮-Win32 API

来自分类Dev

如何使在Win32复选框?

来自分类Dev

如何为在x86主机上交叉编译的手臂目标项目安装依赖项

来自分类Dev

如何停止以Win32 :: Daemon启动的Win32服务?

来自分类Dev

mingw32-g++ 编译器如何知道在 WIN32 机器可执行文件中注入系统调用的位置?

来自分类Dev

在ARM上交叉编译ImageMagick

来自分类Dev

Win32 API:如何读取序列,如果不是数据,如何在超时内退出

来自分类Dev

如何在Win32或MFC中按名称获取字符串资源?

来自分类Dev

Win32 API:如何在Edit控件中捕获转义键?

来自分类Dev

如何在外部Win32应用程序的窗口上添加WPF覆盖?

来自分类Dev

如何在Win32控制台上解析“ printf”而不是“ _printf”的符号?

来自分类Dev

如何在Win32 Project,Visual Studio 2010中添加控制台窗口

来自分类Dev

如何在Win32(C ++)静态控件中正确渲染OpenGL?

来自分类Dev

如何在窗口周围绘制矩形而不覆盖Win32中的标题栏

来自分类Dev

Win32 API:如何在编辑控件中更改部分文本的颜色

Related 相关文章

  1. 1

    如何在x64主机上交叉编译AArch64的LLVM / Clang?

  2. 2

    如何在ipad mini 3上交叉编译iOS8.x的clang / llvm 3.7.0?

  3. 3

    在ubuntu上交叉编译Boost 1.57.0 for arm

  4. 4

    如何在不编译的情况下在Win32机器上安装pycurl

  5. 5

    如何在Ubuntu 18.04上安装交叉编译器?

  6. 6

    如何为iOS交叉编译clang / llvm?

  7. 7

    如何判断是否为PE Win32启用了/ GS编译器

  8. 8

    当副本包含空格时,如何使用bazel在docker build图像上交叉编译tensorflow-serving

  9. 9

    如何在Win32程序中设置以记住大小

  10. 10

    如何在Ubuntu中安装clang格式

  11. 11

    如何在Ubuntu上编译.java文件?

  12. 12

    如何在Ubuntu上编译.java文件?

  13. 13

    如何在Ubuntu 14.04上编译Blender?

  14. 14

    如何在Ubuntu机器上编译fdm?

  15. 15

    如何禁用按钮-Win32 API

  16. 16

    如何使在Win32复选框?

  17. 17

    如何为在x86主机上交叉编译的手臂目标项目安装依赖项

  18. 18

    如何停止以Win32 :: Daemon启动的Win32服务?

  19. 19

    mingw32-g++ 编译器如何知道在 WIN32 机器可执行文件中注入系统调用的位置?

  20. 20

    在ARM上交叉编译ImageMagick

  21. 21

    Win32 API:如何读取序列,如果不是数据,如何在超时内退出

  22. 22

    如何在Win32或MFC中按名称获取字符串资源?

  23. 23

    Win32 API:如何在Edit控件中捕获转义键?

  24. 24

    如何在外部Win32应用程序的窗口上添加WPF覆盖?

  25. 25

    如何在Win32控制台上解析“ printf”而不是“ _printf”的符号?

  26. 26

    如何在Win32 Project,Visual Studio 2010中添加控制台窗口

  27. 27

    如何在Win32(C ++)静态控件中正确渲染OpenGL?

  28. 28

    如何在窗口周围绘制矩形而不覆盖Win32中的标题栏

  29. 29

    Win32 API:如何在编辑控件中更改部分文本的颜色

热门标签

归档