零基础入门篇之Linux及Arm-Linux程序开发笔记

2019-09-23 09:23:47王振洲

    设置好后最好重新登录此账号,然后在终端中输入echo $PATH来检验环境变量是否设置成功:

    如果出现上面的输出,则表示arm-linux平台下的Qt交叉编译环境的环境变量已经设置成功。接下来就可以进行Qt程序开发了。

5.4.2编译生成可执行窗体程序

    在3.2节中已经写好了一个单文件的项目QtHello,并在项目的src目录下生成了一个QtHello.cpp文件,然后我们要做的就是利用arm-linux下的Qt编译器对其进行编译。

    编译Qt窗体项目比编译普通控制台项目要稍微麻烦一点,需要自己写makefile来建立编译规则,编译如上的QtHello.cpp的makefile有如下模板:

#############################################################################

# Makefile for building hello

# Generated by tmake at 20:58, 2011/04/14

# Project: hello

# Template: app

#############################################################################

####### Compiler, tools and options

CC = arm-linux-gcc

CXX = arm-linux-g++

CFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG

CXXFLAGS= -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG

INCPATH = -I. -I$(QTDIR)/include

LINK = arm-linux-gcc

LFLAGS =

LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lm -lqte

MOC = $(QTDIR)/bin/moc

UIC = $(QTDIR)/bin/uic

TAR = tar -cf

GZIP = gzip -9f

####### Files

TARGET = QtHello

HEADERS = $(TARGET).h

SOURCES = $(TARGET).cpp

OBJECTS = $(TARGET).o

DIST =

INTERFACE_DECL_PATH = .

####### Implicit rules

.SUFFIXES: .cpp .cxx .cc .C .c

.cpp.o:

$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:

$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:

$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:

$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:

$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

####### Build rules

all: $(TARGET)

$(TARGET): $(OBJECTS)

$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)

dist:

$(TAR) hello.tar hello.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST)

$(GZIP) hello.tar

clean:

-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET)

-rm -f *~ core

####### Sub-libraries

###### Combined headers

####### Compile

$(TARGET).o: $(TARGET).cpp

    用zsm账号登录(因为关于arm-Qt库的编译环境变量是在此账号中设置的),然后执行如下步骤:

1.将makefile模板文件放置到src目录下面

2.用eclipse或者其它文本编辑器,修改makefile里面的TARGET一项为当前项目名称

3.打开Teminal控制终端,进入到src目录,输入make

4.然后会在src目录下面生成一个指定名称相应的QtHello文件,这个就是arm目标板上的运行程序了。

5.将QtHello文件传送到arm板并运行程序(详细操作方法在4.2.3节中有介绍)。