将Lua与Qt联系起来

时间:2014-01-15 08:57:26

标签: c++ linux qt ubuntu lua

我是一个菜鸟,所以如果我要求的是直接的,或者我错过的基本内容,请原谅。

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

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

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

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

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

- 搜索-llua时,将不兼容的/home/..path转换为Lua源文件../ liblua.a

- 无法找到-llua

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

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

编辑:

编译输出:         16:48:10:为项目testApp运行步骤...         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.

1 个答案:

答案 0 :(得分:0)

最后,我解决了!

问题是我不得不为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和config文件中对readline的所有引用。