首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Macosx、C和嵌入式lua

问Macosx、C和嵌入式lua
EN

Stack Overflow用户
提问于 2012-04-16 11:42:30
回答 1查看 1.3K关注 0票数 1

好吧,我们有的是:

在C上编写的程序,在Linux和MacOSX (豹)中编译和运行,没有问题。我今天嵌入了lua密码。Linux:从源代码编译Lua5.1。所有的工作和编译都没有任何问题。Macos:编译了相同的Lua5.1软件包。

与.llua有关。

启动编译并得到一个错误:

CC=gcc-4.0

ld:警告:在/usr/local/lib/libla.a中,文件不是必需的体系结构

也尝试重新安装,完成从宏端口的删除和安装。一样的。

有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-20 09:55:45

错误"file is not of required architecture"暗示了一个事实,即您正在尝试混合体系结构。

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

例如。

我们有一个i386对象:

代码语言:javascript
复制
==== cat fun.c ==== 
#include <stdio.h>
void fun()
{
    printf("%s", "foobar\n");
}
gcc -arch i386 -c fun.c -o fun.o

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

代码语言:javascript
复制
===== cat test.c ==
extern void fun();
int main()
{
    fun();
}

我们得到:

代码语言:javascript
复制
$ 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10173423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档