gpt4 book ai didi

c - Macosx、C 和嵌入式 lua

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:49 25 4
gpt4 key购买 nike

好的,我们有:

C语言编写的程序,在Linux和MacOSX(leopard)上编译运行没有问题。我今天嵌入了lua代码。 Linux:从源代码编译 lua 5.1。一切正常,编译没有任何问题。 Macos:编译了同样的lua 5.1包。

与 --llua 链接。

开始编译,报错:

CC=gcc-4.0 制作

ld: warning: in /usr/local/lib/liblua.a, file is not of required architecture

还尝试从 macports 重新安装、完全删除和安装。一样。

那么有什么解决办法吗?

最佳答案

错误 “file is not of required architecture” 暗示您正在尝试混合架构。

检查 /usr/local/lib/liblua.a 的体系结构并确保它与您尝试构建的体系结构或对象相匹配。

例如

我们有一个 i386 对象:

==== cat fun.c ==== 
#include <stdio.h>
void fun()
{
printf("%s", "foobar\n");
}
gcc -arch i386 -c fun.c -o fun.o

如果我们在编译 x86_64 对象(Mac OS X 中的默认架构)时尝试使用它:

===== cat test.c ==
extern void fun();
int main()
{
fun();
}

我们得到:

$ gcc test.c fun.o
ld: warning: ignoring file fun.o, file was built for i386 which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
"_fun", referenced from:
_main in ccXVCQhG.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

关于c - Macosx、C 和嵌入式 lua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10173423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com