使用 mono 交叉编译 c 时跳过不兼容的库 (lmono)

Posted

技术标签:

【中文标题】使用 mono 交叉编译 c 时跳过不兼容的库 (lmono)【英文标题】:skipping incompatible library (lmono) while cross compiling c with mono 【发布时间】:2010-11-25 08:45:13 【问题描述】:

好的,现在我设法从本机 C 代码调用托管代码(单声道) 指: http://www.mono-project.com/Embedding_Mono 它适用于我的主机系统(x86)ubuntu。 现在我尝试为我的目标(arm)debian系统交叉编译它。

交叉编译器是来自 Codesourcery 的 arm-none-linux-gnueabi-gcc 2010

当我去的时候:

arm-none-linux-gnueabi-gcc 'pkg-config --cflags glib-2.0 --libs mono' -o main.o main.c

我明白了

Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lmono

所以 libmono.so , libmono.a 在 /usr/lib 中找到,我去:

arm-none-linux-gnueabi-gcc -L/usr/lib 'pkg-config --cflags glib-2.0 --libs mono' -o main.o main.c

导致:

/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libmono.so when searching for -lmono

/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libmono.a when searching for -lmono

/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lmono

有人有建议吗?

最好的问候 地精

【问题讨论】:

【参考方案1】:

首先为 ARM 构建 libmono,而不是尝试使用您的 x86 构建。

【讨论】:

你为 ARM 构建了 that 库了吗? 为 arm 构建一次,现在我从 emdebian 中提取它们。

以上是关于使用 mono 交叉编译 c 时跳过不兼容的库 (lmono)的主要内容,如果未能解决你的问题,请参考以下文章

在搜索 -ldeepsort 时跳过不兼容的 ../tracker/libdeepsort.so

跳过不兼容的 libpcap.so - 交叉编译

搜索 /lib/libpthread.so.0 时跳过不兼容的 /lib/libpthread.so.0

/usr/bin/ld: 搜索 -lQtCore 时跳过不兼容的 /usr/lib/x86_64-linux-gnu/libQtCore.so

查找预编译头文件时跳过

用 64 位 g++ Fedora 编译 32 位