qmake nmake pro qt宏定义字符串与数字之间的转换

本文介绍了一种针对多工程项目的编译方法,通过编写bat脚本调用qmake和nmake实现自动化编译流程。文章详细解释了如何通过宏定义在源代码中使用传入的参数,并探讨了在pro文件中定义宏的具体方法。

由于我的是多工程,所以自己做了脚本来编译,而且是bat调用qmake->nmake来编译。最终就是makefile规则。之前bat样例看这里:

http://labisart.com/blog/index.php/Home/Index/article/search_word/bat/aid/197

那么我给bat传参数时,最终是传到qmake和nmake,对qmake来讲,可以定义一个宏,然后在源代码里面进行访问,这就带来一个问题:如何宏定义字符串和数字。

首先说说规则,

pro里面:DEFINES += xxx

继续:http://labisart.com/blog/index.php/Home/Index/article/aid/215

### 静态编译Qt和OpenCV使用MSVC编译器 #### 使用MSVC编译器静态编译Qt 对于希望利用Microsoft Visual C++(MSVC)编译器来实现Qt的完全静态构建,可以借鉴针对Intel编译器的成功案例。为了达成不仅使Qt本身被静态构建而且使其独立于msvc*.dll运行时库的目标,操作者需执行一系列特定配置命令以及环境设置[^1]。 首先安装所需版本的Qt源码包并解压至指定目录。打开Visual Studio Command Prompt (VS2010),确保此环境中已正确设置了所有必要的路径变量以便访问cl.exe等工具链组件。接着进入Qt源代码根目录,并输入如下配置指令: ```batch configure -static -release -no-exceptions -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -opengl desktop -platform win32-msvc2010 ``` 上述命令中的选项用于关闭异常处理机制(-no-exceptions), 并指示Qt内部集成zlib/pcre/libpng/jpeg库而非依赖外部DLL文件;同时指定了OpenGL支持方式为桌面级API (-opengl desktop); 最后通过-platform参数告知qmake采用适用于Windows平台下的MSVC 2010生成规则。 完成以上步骤之后即可调用nmake来进行实际编译过程: ```batch nmake ``` 这将启动整个项目的编译流程直至最终产出所需的静态链接库(.lib). #### 使用MSVC编译器静态编译OpenCV 关于OpenCV部分,则主要依靠CMake作为跨平台项目管理工具来辅助完成这一目标。下载对应版本的OpenCV源码压缩包并将其放置在一个合适的位置展开。同样地,在Visual Studio Command Prompt环境下切换到该位置继续后续工作。 创建一个新的子文件夹专门用来存放即将产生的中间产物成品二进制文件,比如命名为`build_static`. 接下来运用cmake-gui图形界面程序或者直接在命令行里键入相应语句以初始化CMakeLists.txt解析过程: ```batch cd build_static cmake ..\opencv_source_directory -G "Visual Studio 10 Win64" ^ -DBUILD_SHARED_LIBS=OFF ^ -DWITH_IPP=ON ^ -DCMAKE_BUILD_TYPE=Release ``` 这里-G标志后的字符串代表所选IDE/Generator类型及其位宽规格; BUILD_SHARED_LIBS设为OFF意味着只生产静态库形式的结果物;其他自定义宏定义可根据个人需求调整开关状态或数值大小. 最后再次借助nmake驱动整个工程体系内的各个模块按序组装成形如.lib结尾的目标实体: ```batch nmake ``` 如此这般便完成了基于MSVC编译器对Qt及OpenCV两者的静态化改造作业.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值