Tag: 交叉编译

构建交叉编译器 – 错误:找不到libmpfr

我正在尝试构建一个交叉编译器。 我按照本教程: http : //wiki.osdev.org/GCC_Cross-Compiler 我在/ opt / cross中安装了binutils。 现在我尝试用mpfr-2.4.2安装gcc-4.7.4。 我使用命令来准备和配置: export PREFIX=”$HOME/opt/cross” export TARGET=i686-elf export PATH=”$PREFIX/bin:$PATH” mv gmp-4.3.2 gcc-4.7.4/gmp mv mpfr-2.4.2 gcc-4.7.4/mpfr mv mpc-0.8.1 gcc-4.7.4/mpc # i am in usr/src directory mkdir build-gcc cd build-gcc ../gcc-4.7.4/configure –target=$TARGET –prefix=”$PREFIX” –disable-nls –enable-languages=c,c++ –without-headers 现在,我使用make all-gcc来构建,但是我收到以下错误: configure: error: libmpfr not found or uses a different ABI (including […]

我的交叉编译器出了什么问题?

我正在尝试编译一个基本程序,我可以在我的mac上交叉编译。 我正在运行Mac OS X Mavericks。 我的交叉编译器是arm-elf-gcc-4.7.3。 我写了一个简单的测试程序,看起来像: int main() { ; return 0; } 当我运行/opt/local/bin/arm-elf-gcc-4.7.3 -o test test.c时,我收到这些错误。 test.c:4:Unknown pseudo-op: .global test.c:4:Rest of line ignored. 1st junk character valued 109 (m). test.c:5:Unknown pseudo-op: .type test.c:5:Rest of line ignored. 1st junk character valued 109 (m). test.c:7:Junk character 64 (@). test.c:7:Rest of line ignored. 1st junk character […]

Android NDK OpenSSL错误交叉编译

我是NDK的新手,我正在按照本指南为Android构建OpenSSL,我正在使用Windows 7和Cygwin。 我在尝试构建OpenSSL库时遇到了错误。 # From the ‘root’ directory $ . ./setenv-android.sh $ cd openssl-1.0.1g/ $ perl -pi -e ‘s/install: all install_docs install_sw/install: install_docs install_sw/g’ Makefile.org $ ./config shared no-ssl2 no-ssl3 no-comp no-hw no-engine –openssldir=/usr/local/ssl/$ANDROID_API $ make depend $ make all 当我尝试make depend命令时,我有2个错误: cryptlib.c:171:3: error: #error “Inconsistency between crypto.h and cryptlib.c” # error “Inconsistency between crypto.h […]

如何安装gcc交叉编译器

我试图在linux下安装交叉编译器时遇到困难。 我下载了一个似乎没问题的工具链,但下一步是什么? 我需要在控制台中输入哪些订单才能安装? 目的是将C代码转换为MIPS(小端)代码。 实际上我只需要一次只需2个代码,所以如果有人只能用MIPS向我展示这些代码,我会非常高兴… 第一个代码: #include #include #include #define SIZE 128 int main () { char mychar , string [SIZE]; int i; int count =0 ; printf (“Please enter your string: \n\n”); fgets (string, SIZE, stdin); printf (“Please enter char to find: “); mychar = getchar(); for (i=0 ; string[i] != ‘\0’ ; i++ […]

如何在32位计算机上与VS 2005交叉编译64位DLL?

使用Visual Studio 2005,我在C中编写了一个简单的DLL,它使用Windows API发送UDP数据报,并将其连接到第三方程序。 在64位计算机上,它根本不起作用,因为在这种情况下第三方代码编译为64位。 所以我需要发送同一个DLL的两个版本 – 一个用于32位,一个用于64位。 但是,我没有设法让Visual Studio(在32位机器上运行)吐出一个与32位版本不同的DLL – 似乎只是忽略了项目属性中的“机器”设置。 一位同事告诉我,VS 2008在这种情况下只是拒绝交叉编译。 这根本不可能吗?

CMake:/ usr / include不习惯查找fftw3.h

我正在开发一个个人项目来与CMake交叉编译Raspberry Pi。 这是我第一次使用它构建项目。 我编译的文件之一包括fftw3.h头文件。 此文件存在于/usr/include文件夹中,如以下输出所示: $ ls /usr/include/fftw3* /usr/include/fftw3.f /usr/include/fftw3.f03 /usr/include/fftw3.h /usr/include/fftw3l.f03 /usr/include/fftw3q.f03 cmake使用find_path(FFTW_FOLDER NAMES fftw3.h)成功找到该文件,即使cmake默认查看此路径,我也会在使用target_include_directories(${LIB_NAME} PUBLIC /usr/include)构建目标时显式添加该文件。 但是,当编译时,我有经典的错误消息告诉我fftw3.h 。 如果我复制文件并将其放在我的主文件夹中并在包含列表中添加我的主文件夹,则没有问题,编译工作正常。 有什么想法吗 ? 谢谢,Damien 编辑1回答@Pablo和@hikerjobs : 这是我的编译行的样子: /home/littlemonster/projects/rpi-workspace/rpi-tools/arm-bcm2708/gcc- linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -Dmatrix_hal_EXPORTS -I/home/littlemonster/projects/rpi- workspace/lib/matrix-hal/matrix-creator-hal -fPIC -Wall -Werror – Wextra -Wdouble-promotion -std=gnu++11 -o CMakeFiles/matrix- hal.dir/matrix-creator-hal/cpp/driver/cross_correlation.cpp.o -c /home/littlemonster/projects/rpi-workspace/lib/matrix-hal/matrix- creator-hal/cpp/driver/cross_correlation.cpp In file included from /home/littlemonster/projects/rpi- workspace/lib/matrix-hal/matrix-creator- hal/cpp/driver/cross_correlation.cpp:18:0: /home/littlemonster/projects/rpi-workspace/lib/matrix-hal/matrix- creator-hal/cpp/driver/cross_correlation.h:21:19: fatal […]

交叉编译或编译Native Arch for CPU Arch

编写依赖于CPU拱的软件时,例如在x86上运行的C代码或在ARM cpus上运行的C代码。 通常有两种方法可以编译这些代码,或者交叉编译到ARM CPU拱门(例如,如果你在x86系统上进行开发),或者将代码复制到本机arch cpu系统并进行天真编译。 我想知道原生方法和交叉编译方法是否有好处? 我注意到Fedora ARM团队正在使用慢速/低功耗ARM设备的构建服务器集群来“天真地”编译他们的Fedora ARM旋转……当然,由Red Hat支持的项目可以访问运行x86 cpu的一些强大的构建服务器这可以在1/2的时间内完成工作……为什么他们选择? 我是否通过交叉编译我的软件而错过了什么?

链接器错误 – 尝试链接arm,但链接器使用x86

我试图将这个C库交叉编译为iOS库,即用于armv7机器。 我正在使用OSX机器来编译库。 该项目设置为使用Autoconf – 这是我正在使用的选项: ./configure –host=arm-apple-darwin –prefix ~/dev/xmlrpc-c-1.25.28/iOS_bin_arm CFLAGS=”-arch armv7s -isysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=4.0″ –disable-curl-client –disable-cplusplus LDFLAGS=’-arch armv7s -miphoneos-version-min=4.0 –sysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk’ 编译好了。 问题发生在链接阶段: ld: warning: ignoring file parse_datetime.osh, file was built for armv7s which is not the architecture being linked (x86_64): parse_datetime.osh ld: warning: ignoring file parse_value.osh, file was built for armv7s which is not […]

嵌入共享库的绝对路径

使用供应商提供的交叉编译工具链(显然是OpenEmbedded衍生产品),我无法将绝对路径嵌入到第三方(开源,内部编译)库中。 使用以下gcc命令行: arm-linux-gcc test_connect_send.o gprs_connect.o \ /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgprs_stuff.so \ /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libpower_supply_stuff.so \ /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgsm_stuff.so \ /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libtcp_stuff.so \ /package/host/aspl.es/vortex-1.1.0/lib/libvortex-1.1.so \ /package/host/aspl.es/axl-0.5.6/lib/libaxl.so.0 -o test_connect_send objdump说: Dynamic Section: NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgprs_stuff.so NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libpower_supply_stuff.so NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libgsm_stuff.so NEEDED /package/host/myvendor.com/API-R-2.0.0/Release/Libraries/libtcp_stuff.so NEEDED libvortex-1.1.so.0 NEEDED libaxl.so.0 NEEDED libgcc_s.so.1 NEEDED libc.so.6 请注意我的供应商的库如何拥有完整的路径,而aspl则没有。 另外,请注意嵌入的名称与我在命令行中指定的名称不同。 我想知道为什么(谁在弄乱我的路径),以及如何解决它。 ps:我知道RPATH,这不是我正在寻找的答案

非法指令 – 在android上运行Cross编译的c代码

请问我需要帮助:((此问题之前已经发布但尚未解决。我正在尝试在模拟器上运行的Android 2.3.3平台上运行C代码。这是我的代码(甚至不是hello world):test 。C void main() { } 交叉编译:arm-linux-gnueabi-gcc -static -o test test.c ->adb push test /data/local ->./test 我得到了:非法指令./test 我也尝试使用-march = armv5进行编译但结果相同。 CPU信息: ->adb shell /proc/cpuinfo CPU架构:5TEJ 我已经迷失在互联网上寻找解决方案。 如果有人解决了这个或有任何想法请分享。 我非常感谢你的帮助。