标签: cross-compiling

如何使用CMAKE从命令行在Windows上构建x86和/或x64?

使用Visual Studio让cmake在Windows上构建x86的一种方法是这样的:

  1. 启动x86的Visual Studio命令提示符
  2. 运行cmake: cmake -G "NMake Makefiles" \path_to_source\
  3. NMAKE

使用Visual Studio让cmake在Windows上构建x64的一种方法是这样的:

  1. 启动x64的Visual Studio命令提示符
  2. 运行cmake: cmake -G "NMake Makefiles" \path_to_source\
  3. NMAKE

使用Cmake,我如何编译其中一个或两个架构?(就像Visual Studio在IDE中的表现一样)

c x86-64 cmake cross-compiling visual-studio

54
推荐指数
3
解决办法
7万
查看次数

将Linux上的Python脚本交叉编译为Windows可执行文件

我有一个Python脚本,我想编译成Windows可执行文件.现在,py2exe从Windows工作正常,但我希望能够从Linux运行它.我的是Windows我的开发机器上,但Linux是我的主要开发平台,我得到一种重新启动进入Windows刚刚创建的生病的.exe.我也不想购买第二个Windows许可证以在VirtualBox等虚拟机中运行.有任何想法吗?

PS:我知道py2exe没有完全编译python文件,就像使用Python解释器打包脚本一样.但无论哪种方式,结果都是您不需要安装Python来运行脚本.

python linux windows py2exe cross-compiling

53
推荐指数
3
解决办法
6万
查看次数

如何在命令行中给出修改路径名的MinGW和MSYS

在Windows上,我使用CodeSourcery的交叉编译器套件为ARM/Linux交叉编译程序.我使用MinGW MSYS作为我的命令解释器,并且经常会破坏我的路径和路径名.例如,为了构建我的程序,我调用了

arm-none-linux-gnueabi-gcc.exe -Wall -g \
    -Wl,--dynamic-linker=/usr/lib/myrpath/ld-linux.so.3 \
    -Wl,-rpath=/usr/lib/myrpath \
    -I../targetsysroot/usr/include \
    myprogram.c -o myprogram
Run Code Online (Sandbox Code Playgroud)

当然,我想/usr/lib/myrpath逐字插入myprogram可执行文件 - 我正在编译的ARM Linux目标不使用MinGW或MSYS.但是这里最终会涉及到它:

...
0x0000000f (RPATH)            Library rpath: [C:/MinGW/msys/1.0/lib/myrpath]
...
Run Code Online (Sandbox Code Playgroud)

不完全是我想要的.如果我直接在cmd.exe命令行上调用GCC,我会在可执行文件中获得正确的rpath.如果我在MSYS命令行上调用GCC,我会得到损坏的rpath.如果我使用从cmd.exe命令行使用make运行的Makefile调用GCC,我仍然会得到一个受损的rpath(!)

我有什么想法可以关闭这种烦人的行为?

gcc mingw rpath cross-compiling codesourcery

53
推荐指数
5
解决办法
2万
查看次数

GCC中Raspberry Pi的交叉编译.从哪儿开始?

TL/DR:我在哪里可以找到有关为ARM(gnueabi)平台(旨在在Raspberry Pi设备上运行)构建GCC 4.7.0交叉编译工具链的更多信息?

我刚买了一个全新的Raspberry Pi,我非常渴望为它开始编程.我已经设法安装了GCC工具链(我正在使用Arch Linux系统映像)并编译了一些基本程序,一切正常.

我也尝试编译Boost库,因为我经常在我的项目中使用它们,一切似乎都按照说明(./bootstrap.sh+ ./b2)工作正常,除了编译速度很慢的事实.我把它放了几个小时,但它几乎没有超过前几个源文件.在我让它运行过夜之后,我发现构建过程由于RAM短缺而中止.

所以,我的猜测是,Rasp Pi的功能不足以编译像Boost这样大小的东西.所以,我想到了交叉编译.但是,即使有很多关于ARM在线交叉编译的信息,我觉得它很混乱.一个人甚至从哪里开始?

我最近在我的Raspberry Pi上有一个GCC版本(4.7.0),所以我想要用相同的版本进行交叉编译.哪里可以获得ARM的GCC 4.7.0工具链?(我将在x86 CentOS 6.2上编译)

编辑:

我释放了不需要的GPU内存并在USB驱动器上设置了4GB交换分区,而构建文件在NFS共享上.Boost现在编译得更快,因此它是可管理的.我仍然想知道如何在我的x86 PC上设置GCC 4.7工具链进行交叉编译,因为我打算做很多编译,我希望它尽可能快.

编辑2:

由于GCC 4.7.0相对较新,似乎没有预先构建的交叉编译器(i386-> ARM).我可能不得不自己构建一个,这似乎是一个非常重要的任务(我已经尝试过并且失败了).有没有人知道要建立GCC交叉编译器的教程,希望是最近的版本之一?

我已经尝试过这个很棒的shell脚本(它非常适合构建同一个arch编译器)并且我已经成功构建了binutilsGCC的先决条件,但是GCC构建仍然失败了很多神秘的错误.我真的迷失在这里,所以我非常感谢你的帮助.

Raspberry Pi上的GCC配置了

--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib 
--mandir=/usr/share/man --infodir=/usr/share/info 
--with-bugurl=https://bugs.archlinux.org/ 
--enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-shared 
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit 
--disable-libunwind-exceptions --enable-clocale=gnu 
--disable-libstdcxx-pch --enable-libstdcxx-time 
--enable-gnu-unique-object --enable-linker-build-id --with-ppl 
--enable-cloog-backend=isl --enable-lto --enable-gold 
--enable-ld=default --enable-plugin --with-plugin-ld=ld.gold 
--with-linker-hash-style=gnu --disable-multilib --disable-libssp 
--disable-build-with-cxx --disable-build-poststage1-with-cxx 
--enable-checking=release --host=arm-unknown-linux-gnueabi 
--build=arm-unknown-linux-gnueabi 
Run Code Online (Sandbox Code Playgroud)

编辑3:

我设法使用这个shell脚本为ARM构建一个4.7 GCC工具链(yay!),如用户dwelch在评论中所建议的那样.我还构建newliblibstdc++使用本文作为指南.工具链工作正常,但是我在我的Raspberry Pi上运行可执行文件,它失败了Illegal instruction …

c++ gcc arm cross-compiling raspberry-pi

52
推荐指数
2
解决办法
5万
查看次数

所有可能的GOOS价值?

如果我做对了,GOOS确定编译源代码时.

为了更好地支持多个操作系统,我对GOOS可能的内容感兴趣.

当然,它可能有无限的可能性,因为Go是开源的.所以我真正想要的是一个"共同列表".

已知值为:

  • windows
  • linux
  • darwinfreebsdunix?我知道其中至少有一个必须存在.

cross-compiling go

51
推荐指数
3
解决办法
4万
查看次数

ffmpeg for a android(使用教程:"ffmpeg和Android.mk")

我正在尝试为一个android编译ffmpeg.我找到了几个关于这个主题的帖子,但是这些帖子似乎没有用.如果尝试构建ffmpeg,就像发布在[1]上一样.有没有人使用这些教程成功编译ffmpeg?我不知道如何实现第4步到第5步.

第4步:配置......

第5步:cd到你的NDK根目录,输入make TARGET_ARCH = arm APP = ffmpeg-org

在我看来,在步骤5的教程中解释构建类似的应用程序需要一些先前的步骤.不幸的是我在文件夹中没有应用程序.我正在使用当前的android ndk版本3并检查了[3]和[4]中的实际ffmpeg版本.我很感谢你的每一个建议.

[1] http://slworkthings.wordpress.com/
[2]http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android
[3]http://ffmpeg.org/download.html

android ffmpeg cross-compiling android-ndk android-ffmpeg

49
推荐指数
2
解决办法
6万
查看次数

如何构建OCaml交叉编译器

在找到为目标机器生成拟合配置文件的方法之后,仍然必须构建交叉编译器本身.如果主机和目标系统差异太大,那么使用这里描述的1 1/2构建的方法(以及更多细节,这里)似乎不起作用.这是构建脚本的更改部分(可以使用获得$ svn cat svn://svn.psellos.com/trunk/ocamlxarm/3.1/xarm-build)

# Small steps
config1 () {
    # Configure for building bytecode interpreter to run on Intel OS X.
    # But specify * architecture for assembly and partial link.
    echo 'xarm-build: ----- configure phase 1 -----'
    ./configure \
            -prefix "" \
            -no-curses \
            -no-tk \
            -no-graph \
            -as "" \
            -aspp ""\
            -partialld ""
    # Post-modify config/Makefile to select the * back end for
    # ocamlopt (to generate …
Run Code Online (Sandbox Code Playgroud)

ocaml cross-compiling

49
推荐指数
1
解决办法
2847
查看次数

交叉编译器ldd

我创建了一个交叉编译的arm可执行文件.我想找到可执行文件的库依赖项.我正在使用ubuntu natty并安装了arm-linux-gnueabi工具链,它不包含ldd.有没有一个工具可以在linux中查看arm可执行文件库的依赖性.

linux ubuntu arm cross-compiling ldd

44
推荐指数
4
解决办法
2万
查看次数

从Windows到Linux的C++交叉编译器

是否有任何用户友好的工具可以从Windows交叉编译到Linux?

c++ linux windows cross-compiling

43
推荐指数
2
解决办法
6万
查看次数

从Linux到Windows交叉编译C++应用程序的手册?

是否有从Linux到Windows交叉编译C++应用程序的手册?

只是.我想要一些信息(链接,参考,例子......)来指导我这样做.

我甚至不知道是否可能.

我的目标是在Linux中编译一个程序并获得一个我可以在Windows下运行的.exe文件.

c++ linux windows cross-compiling

40
推荐指数
2
解决办法
3万
查看次数