zoukankan      html  css  js  c++  java
  • Qt项目下pro文件设置库路径

    问题

    正常情况下我们会将工程的路径用一个变量来储存
    例如:

    PROJECT_DIR=/home/$$(USER)/svn/embd_linux/app
    

    然后后面的变量引用这个变量,例如:

    INCLUDEPATH += $${PROJECT_DIR}/thirdparty/sqlite3/include
    
    LIBS += -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/app
    
    equals($$(USER), "Kevin") {
        PROJECT_DIR=/home/$$(USER)/embd_linux/app
        message( "USER Kevin" )
    }
    

    但是这样根本不行
    USER Kevin根本没有被打印
    然后折腾了一会,发现这个$$(USER)变量实际和pro里面的变量还不太一样
    于是就改成这样

    PROJECT_DIR=/home/$$(USER)/svn/embd_linux/app
    
    USERNAME = $$(USER)
    equals(USERNAME, "Kevin") {
        PROJECT_DIR=/home/$$(USER)/embd_linux/app
    }
    

    这次就成功了。

    结论

    所以后面遇到多人合作开发,环境的路径又不太一样的时候,可以将Qt的pro文件改一下条件判断。
    这种条件判断的方式应该在很多情况下都可以使用的,可以灵活运用

  • 相关阅读:
    jsp文件导包 糖不苦
    java 数字和日期处理 糖不苦
    java时间的一些处理 糖不苦
    Vimdiff 使用
    C++资源不完全索引
    sprintf 函数详细解释
    C++ 时间
    C++的可移植性和跨平台开发
    Solaris下开发64位程序的注意事项
    C/C++ 数学库函数
  • 原文地址:https://www.cnblogs.com/nbtech/p/14572452.html
Copyright © 2011-2022 走看看