QT交叉编译时怎么添加静态库,急!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT交叉编译时怎么添加静态库,急!!!相关的知识,希望对你有一定的参考价值。
新手,交叉编译器应该是安装好了,程序写完了后输入编译命令
/opt/EmbedSky/qt-4.5/__install/arm/bin/qmake -project
/opt/EmbedSky/qt-4.5/__install/arm/bin/qmake
make
(自己乱试的,不知道是不是这样编译)
在板子上运行的时候提示错误:
error while loading shared libraries:libQtGui.so.4:cannot open shareed object file:No such file or directory
查看Makefile,以下是部分Makefile文件:
CC = arm-linux-gcc
CXX = arm-linux-g++
DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
INCPATH = -I../EmbedSky/qt-4.5/__install/arm/mkspecs/default -I. -I../EmbedSky/qt-4.5/__install/arm/include/QtCore -I../EmbedSky/qt-4.5/__install/arm/include/QtNetwork -I../EmbedSky/qt-4.5/__install/arm/include/QtGui -I../EmbedSky/qt-4.5/__install/arm/include -I. -I. -I.
LINK = arm-linux-g++
LFLAGS = -Wl,-O1 -Wl,-rpath,/opt/EmbedSky/qt-4.5/__install/arm/lib
LIBS = $(SUBLIBS) -L/opt/EmbedSky/qt-4.5/__install/arm//lib -lQtGui -L/tslib-1.4/lib -L/opt/EmbedSky/qt-4.5/__install/arm//lib -lts -lQtNetwork -lQtCore -lm -lrt -ldl -lpthread
AR = arm-linux-ar cqs
RANLIB =
QMAKE = /opt/EmbedSky/qt-4.5/__install/arm/bin/qmake
TAR = tar -cf
COMPRESS = gzip -9f
COPY = cp -f
SED = sed
COPY_FILE = $(COPY)
COPY_DIR = $(COPY) -r
INSTALL_FILE = install -m 644 -p
INSTALL_DIR = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE = rm -f
SYMLINK = ln -sf
DEL_DIR = rmdir
MOVE = mv -f
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p
开发板用的是原厂自带的系统,不知道有没有QT环境
看错误提示应该是开发板上找不到Qt的库,用静态连接库行不行,应该怎么做?
还有一个问题是我的虚拟机能ping通主机,主机能ping通开发板,但是虚拟机ping不通开发板,这样虚拟机和开发板之间能不能通过socket通信,该如何解决?
很急,谢谢了
在这里增加你编译的静态库。。。可以试试,我也是新手追问
额。。。静态库。。。怎么加啊?
追答说错了 是往这里面加
LIBS = $(SUBLIBS) -L/opt/EmbedSky/qt-4.5/__install/arm//lib -lQtGui -L/tslib-1.4/lib -L/opt/EmbedSky/qt-4.5/__install/arm//lib -lts -lQtNetwork -lQtCore -lm -lrt -ldl -lpthread
-L/绝对路径 -l库
但是怎么编译成静态的呢?
追答把你写的那个.c文件编译成。o再编译成库
1、 gcc -o xx.c
2、 ar -crv libxx.a xx.o //编译库文件所依赖的.o文件
怎么把qt的源代码编译成在嵌入式系统中运行的库啊,放进板子倒是会,设置环境变量又不会了,能麻烦你再讲详细一些么,另外我是选择的桥接方式啊,IP段也改了,防火墙、杀毒软件这些都关了,还是ping不通,我都要崩溃了
追答一言难尽,别着急,慢慢来.最好找有经验的身边的人问问.网上问比较局限.因为太复杂一言难尽
以上是关于QT交叉编译时怎么添加静态库,急!!!的主要内容,如果未能解决你的问题,请参考以下文章