将Lua与Qt联系起来

Linking Lua with Qt

本文关键字:联系 起来 Qt Lua      更新时间:2023-10-16

我是一个菜鸟,所以如果我问的是直截了当的,或者我错过了一些基本的东西,请原谅我。

我试图将Lua与Qt创建者链接起来,以便我可以运行基本的Lua脚本。我将Lua所需的所有头文件都包含在我的主文件中.cpp。低,我正在尝试将 liblua.a 库链接到该项目;所以我所做的是,我手动添加了库。然后创建者生成了此代码,并将其添加到我的 .pro - 文件中:

    unix:!macx: LIBS += L$$PWD/ -llua
    INCLUDEPATH += $$PWD/
    DEPENDPATH += $$PWD/
    unix:!macx: PRE_TARGETDEPS += $$PWD/liblua.a

然后,当我启动调试器时,出现两个错误:

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

-

找不到 -llua

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

有人可以告诉我我做错了什么吗?

编辑:

编译输出: 16:48:10:运行项目测试应用的步骤... 16:48:10:配置未更改,跳过 qmake 步骤。

    16:48:10: Starting: "/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: 
    skipping incompatible /home/david/workspace/testApp//liblua.a when searching for 
    -llua
    /usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld: cannot 
    find -llua
    collect2: ld returned 1 exit status
    make: *** [testApp] Error 1
    16:48:10: The process "/usr/bin/make" exited with code 2.
    Error while building/deploying project testApp (kit: SAP)
    When executing step 'Make'
    16:48:10: Elapsed time: 00:00.

终于,我解决了!

问题是我必须交叉编译ARM内核的Lua库。原始Lua库的架构无法被内核识别,因为在调试时程序的执行发生在内核本身上。

我通过以下方式做到了这一点:

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

并在执行上述命令之前删除对 makefile 和配置文件中对 readline 的所有引用。