将Lua与Qt链接

我是一个新手,如果我提出的问题很基本或者我漏掉了一些东西,请原谅我。

我正在尝试将Lua与Qt Creator关联起来,以便我可以运行一个基本的Lua脚本。我在我的main.cpp文件中包含了Lua所需的所有头文件。接下来,我正在尝试将liblua.a库链接到项目中;所以我手动添加了库。

然后Creator生成了这段代码,并将其添加到我的.pro文件中:

    unix:!macx: LIBS += L$$PWD/ -llua

    INCLUDEPATH += $$PWD/
    DEPENDPATH += $$PWD/

    unix:!macx: PRE_TARGETDEPS += $$PWD/liblua.a

然后,当我启动调试器时,我收到了两个错误:

-当搜索-llua时,跳过与不兼容的/home/..Lua源文件路径../liblua.a

-找不到-llua

我正在运行Ubuntu 12.04,我当前使用的Lua版本是5.2.3

有人能否告诉我我在做错了什么?

编辑:

编译输出: 16:48:10: 为项目testApp启动步骤... 16:48:10: 配置未更改,跳过qmake步骤。

    16:48:10: 开始:“/usr/bin/make”

    arm-linux-gnueabihf-g++ -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib -o
    testApp main.o    -L/usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib -ldl -L/home/david
    /workspace/testApp/ -llua -lQtNetwork -L/usr/local/Trolltech/QtEmbedded-4.8.4-
    arm/lib -lQtCore -lpthread

    /usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld:
    在搜索-llua时跳过不兼容的/home/david/workspace/testApp//liblua.a

    /usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld:无法
    找到-llua

    collect2:ld返回1退出状态

    make: *** [testApp] 错误1

    16:48:10: 进程“/usr/bin/make”以代码2退出。

    在执行“Make”步骤时出错

    16:48:10: 经过时间:00:00。
点赞
用户3197281
用户3197281

最终,我解决了它!

问题在于我必须交叉编译 Lua 库,以适用于 ARM 核心。原始的 Lua 库的架构不可被核心识别,因为在调试时程序的执行是在核心本身上进行的。

我通过以下方式解决了此问题:

    $ make linux CC=PATH/arm-linux-gnueabihf-gcc AR=”PATH/arm-linux-gnueabihf-ar rcu”  RANLIB=PATH/arm-linux-gnueabihf-ranlib

在执行上述命令之前,我删除了 makefile 和 config 文件中所有对 readline 的引用。

2014-01-17 08:07:23