本文共 869 字,大约阅读时间需要 2 分钟。
正常情况下我们会将工程的路径用一个变量来储存
例如:PROJECT_DIR=/home/$$(USER)/svn/embd_linux/app
然后后面的变量引用这个变量,例如:
INCLUDEPATH += $${PROJECT_DIR}/thirdparty/sqlite3/includeLIBS += -lrt -lpthread \ -L$${PROJECT_DIR}/thirdparty/sqlite3/lib -lsqlite3 -lsqlite3-json
但是在多人合作开发的时候,例如有SVN或者Git,如果有人将SVN或者Git的根路径设置的不太一样,不一定在user的根目录上
那么就会出现交叉编译工具或者库找不到的情况这个时候就要对特定用户做一下区分了,我想到的是对用户名进行判断如果是某个用户他的SVN路径不一样,那么就采用不同的策略那么我想到的一个方案是
直接判断这个USER变量PROJECT_DIR=/home/$$(USER)/svn/embd_linux/appequals($$(USER), "Kevin") { PROJECT_DIR=/home/$$(USER)/embd_linux/app message( "USER Kevin" )}
但是这样根本不行
USER Kevin
根本没有被打印然后折腾了一会,发现这个$$(USER)变量实际和pro里面的变量还不太一样于是就改成这样 PROJECT_DIR=/home/$$(USER)/svn/embd_linux/appUSERNAME = $$(USER)equals(USERNAME, "Kevin") { PROJECT_DIR=/home/$$(USER)/embd_linux/app}
这次就成功了。
所以后面遇到多人合作开发,环境的路径又不太一样的时候,可以将Qt的pro文件改一下条件判断。
这种条件判断的方式应该在很多情况下都可以使用的,可以灵活运用转载地址:http://zbryz.baihongyu.com/