我是菜鸟,所以如果我问的是直截了当的问题,或者我错过了一些基本的问题,请原谅。
我正在尝试将 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: 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 的所有引用。
关于c++ - 连接 Lua 和 Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132898/