Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95403
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 142
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-22 14:20
个人简介

会挽雕弓如满月,西北望,射天狼

文章分类

全部博文(14)

文章存档

2020年(2)

2015年(10)

2014年(2)

我的朋友

分类: LINUX

2015-06-18 17:51:00

Qmake  编写pro 常用参数


TEMPLATE = subdirs           #编译类型-子目录

CONFIG = ordered             #编译次序-顺序编译

SUBDIRS += ParaIO            #子目录名
在程序顶层执行" qmake –r ",在每个子目录生产Makefile文件

MOC_DIR=./moc

  指定moc文件存放路径


OBJECTS_DIR=./obj

  指定.o 文件路径


QMAKE_CXXFLAGS += -g

  g++ 编译添加 –g 选项,增加调试信息


QMAKE_CFLAGS += -g

          gcc 编译添加 –g 选项,增加调试信息

参数 “-o”生成指定Makefile的名字
Eg.
qmake  seisFlwo.pro -o Makefile_pro –r
根据pro文件在各个子目录生成Makefile,命名为      Makefile_pro
make -f Makefile_pro
编译seisFlwo.pro内所包含的所有的Makefile

*******************************************************************************************************

手动编写makefile时,应从系统层面考虑,编译时务必自顶向下编译各个子目录,禁止将各个模块分别编译,手动拷贝执行文件

 

使用参数 “-C”,eg.

     make –C  tools         # 编译子目录tools

     make  clean–C  tools  #清除子目录tools


  . PHONY

  显式请求时执行命令的名字, eg.

.PHONY all:                             #编译时执行命令,缺省为all

all:   tool                                   #命令名所包含子模块


.PHONY clean:

clean:   tool_clean



tool_clean:                               #子模块的具体编译内容

        make clean -C tools

tool:

        make -C tools


参数 "-j"

  多核编译,适用于多核处理器,

  查看cpu信息确定核数,"cat /proc/cpuinfo"

  运行命令  make  -j  核数+1 , 加快编译速度


参数 "-s", 不打印编译信息


参数  "-f ",编译 指定makefile,默认编译Makefile和makefile文件,eg,  make  -f  mymakefile


*******************************************************************************************************
环境变量的使用

编程原则

 

  禁止使用绝对路径

  尽量不用相对路径

  使用环境变量,提高代码可移植性


环境变量    PROJECTDIR
        makefile中的获取方式 $(PROJECTDIR)

  qmake的pro中获取方式 $$(PROJECTDIR)

  cmake 中的获取方式 $ENV{PROJECTDIR}

  c程序中获取方式 getenv("PROJECTDIR")

  shell脚本中获取方式 ${BASE_PATH}

  python程序中获取方式

  import os

  os.getenv("PROJECTDIR")

阅读(5708) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~