我是一个菜鸟,所以如果我要求的是直接的,或者我错过的基本内容,请原谅。
我试图将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.
答案 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的所有引用。