[qt creator]qmake生成makefile

本文详细介绍了如何在ARM平台使用QtCreator生成makefile,并指导了设置环境、创建pro和pri文件、配置构建过程,包括debug和release模式。涵盖了QMake的基本操作和关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在arm板子上编译搭建qmake
https://blog.youkuaiyun.com/qq_41884002/article/details/116942605?tt_from=weixin&utm_source=weixin&utm_medium=toutiao_ios&utm_campaign=client_share&wxshare_count=1


1 基于qt creator生成makefile

基于qt creator中的qmake构建makefile后

进入终端,可以敲命令进行编译:

在ubuntu下安装qt creator后,使qmake等生效的,设置如下:

sudo gedit /etc/profiles
#willis add
export PATH="/home/tf/Qt5.8.0/5.8/gcc_64/bin:$PATH" 
export QIDIR=/home/tf/Qt5.8.0/5.8/gcc_64/
export MANPATH=/home/tf/Qt5.8.0/5.8/gcc_64/man/:$MANPATH
export LD_LIBRARY_PATH="/home/tf/Qt5.8.0/5.8/gcc_64/lib:$LD_LIBRARY_PATH" 

2 基于qmake生成makefile 

<1>第1步:先构建文件夹目录,如下:

include  :对外的头文件.h ,release时用
src         :cpp和私有的头文件.h
prj_linux:构建工程使用,包含pro和pri文件

<2>第2步:生成pro文件和pri文件 

cd prj_linux/
qmake -project ../ -o qtcpp.pro

这里生成的pro文件,包含了.h/.c/cpp等源文件,用在pri文件里

直接将pro文件重名成pri,删除其它定义

# Input
HEADERS += ../include/server/factory.hpp
SOURCES += ../src/server/factory.cpp


<3> 第3步: 手动新建pro文件,修改pro文件,将pri文件包含进来

pro文件模板如下:


TEMPLATE = app
TARGET = qtcpp

QMAKE_CXXFLAGS += -std=c++11 -O2

#去掉qt的依赖
#QT += core 
QT -= core gui

CONFIG += debug
#CONFIG += release

INCLUDEPATH += ./../include \

LIBS += \

#目标生成的目录
DESTDIR = ./../bin

#临时生成的目录
DEPENDPATH += .

CONFIG(debug, debug|release) {
    QMAKE_CXXFLAGS += -Wall -g 
    MOC_DIR     += ./build/debug/moc
    OBJECTS_DIR += ./build/debug/obj
    UI_DIR      += ./build/debug/ui
    RCC_DIR     += ./build/debug/rcc
} else {

    MOC_DIR     += ./build/release/moc
    OBJECTS_DIR += ./build/release/obj
    UI_DIR      += ./build/release/ui
    RCC_DIR     += ./build/release/rcc
}

include(../prj_linux/qtcpp.pri)

<4>第4步: 构建makefile进行编译
如果debug编译还是release编译,修改pro文件

CONFIG += debug
#CONFIG += release

all:qtcpp_build 

clean:qtcpp_clean 

qtcpp_build:
	cd ./prj_linux/ ; qmake .;
	$(MAKE) -C ./prj_linux;

qtcpp_clean:
	cd ./prj_linux/ ; qmake .;
	$(MAKE) -C ./prj_linux/ clean;
	
	

make -s 2>1: warning和error信息会输出到1文件里
make -s >1: warning和error信息会输出到终端里,正常的信息会输出到1里

 编译多个工程时,新建Makefile

appsubdirs=sub1 sub2

app: 
	for d in $(appsubdirs); do (cd $$d; (if  test -e "Makefile"; then $(MAKE) $(MFLAGS); fi;) ); done

cleanapp: 
	for d in $(appsubdirs); do (cd $$d; (if  test -e "Makefile"; then $(MAKE) clean; fi;) ); done

3 qt默认带的变量解释

 DEFINES+=QT_DEPRECATED_WARNINGS:定义编译选项。

QT_DEPRECATED_WARNINGS表示当Qt的某些功能被标记为过时的,那么编译器会发出警告。


常用的pro模板,生成动态库

TARGET = camera

#生成so的路径,直接放到bin文件夹下
PROPWD = ../..
DESTDIR = ../../bin

QT -= qt core gui

#配置:静态库还是动态库,这里是动态库
TEMPLATE = lib
CONFIG += plugin
#CONFIG  += staticlib

#配置:正式用=release,调试时=debug
CONFIG += debug
#CONFIG += release

#配置:其它相关设置
CONFIG += c++11
CONFIG += warn_off

#配置:源码里的宏参数
#DEFINES += OS_LINUX _CLASS_Adapter_DLL SDKONVIF_LIBRARY SDK28181_LIBRARY
DEFINES += OS_LINUX

#配置:系统里的参数
DEFINES += QT_DEPRECATED_WARNINGS

#包含头文件路径
INCLUDEPATH += $${PROPWD}/include



#包含库文件
LIBS += -Wl,-rpath=./:./ffmpeg/Hard:./ffmpeg:./live555:./RtmpLib 
LIBS += -L$${PROPWD}/bin/ffmpeg 


#临时生成的目录
DEPENDPATH += .
 
#编译生成的文件路径设置 
CONFIG(debug, debug|release) {
    QMAKE_CXXFLAGS += -Wall -g 
    MOC_DIR     += ./build/debug/moc
    OBJECTS_DIR += ./build/debug/obj
    UI_DIR      += ./build/debug/ui
    RCC_DIR     += ./build/debug/rcc
} else {
 
    MOC_DIR     += ./build/release/moc
    OBJECTS_DIR += ./build/release/obj
    UI_DIR      += ./build/release/ui
    RCC_DIR     += ./build/release/rcc
}

#包含源文件
include(camera.pri)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值