【问题标题】:Skipping incompatible error跳过不兼容的错误
【发布时间】:2015-04-15 08:39:57
【问题描述】:

我下载了 nettle 3.0 密码库并在 ubuntu 上编译了它。 我运行了一个示例,它在 ubuntu 上运行良好。 我将编译后的静态库文件(libnettle.a)添加到我的项目中 在 Contiki 中的 makefile,只需添加:

LDFLAGS+= -L/usr/local/lib/ -lnettle

当我尝试编译节点代码时,我得到了这个

/usr/local/msp430/bin/../lib/gcc/msp430/4.7.0/../../.*./../msp430/bin/ld:skipping incompatible /usr/l*ocal/lib//libnettle.a when searching for -lnettle
/usr/local/msp430/bin/../lib/gcc/msp430/4.7.0/../../.*./../msp430/bin/ld: cannot find -lnettle*
collect2: error: ld returned 1 exit status
rm obj_sky/contiki-sky-main.o test_nettle.co
Process returned error code 2

make: *** [test_nettle.sky] Error 1

我应该添加 -m32 标志还是什么?

如果是,什么标志? CFLAG ?

顺便说一下,荨麻库是 32 位的,我已经检查过了。

谢谢

好的。所以我使用以下命令重建库:

./configure --target=msp430 --prefix=/usr/local/Mymsp430
make
make install

将 LDFLAG 更改为

LDFLAGS+= -L/usr/local/Mymsp430/lib/ -lnettle

但我仍然有同样的错误。

【问题讨论】:

    标签: c linux contiki cflags


    【解决方案1】:

    您必须使用与用于构建应用程序的工具链相同的工具链来构建库。

    您不能将 x86 代码链接到为 MSP430 编译的代码中,这是一种完全不同的架构。

    【讨论】:

    • 对不起,但你是说 ELF32-i368 与 ELF32-little 不兼容
    • 不,他是在告诉你,你不仅有错误的精灵格式,而且还有错误的指令集。 readlef -h file 提供所需信息。它应该包含类似Machine: Texas Instruments msp430 microcontroller 的内容。延伸阅读:en.wikipedia.org/wiki/Instruction_set
    • 我还是不明白。打扰一下 。我到底想做什么?使用不同的设置重建库或????
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 2013-03-30
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2020-04-28
    • 2018-06-11
    相关资源
    最近更新 更多