.pro文件添加不同[系统、架构]库文件方式总结

目录

1、系统测试环境

2、.pro中常用的相关字段总结

3、.pro中添加模板


最近工作中遇到问题记录:在不同系统、架构中调用不同库文件的问题,研究了一下,总结记录如下:

说明:这里只是基于本人额现有环境,以及项目需求所写,若不完整,欢迎批评指正,共同进步:

1、系统测试环境

系统(现有环境) 系统类型(CPU架构) 查看命令
windows                 x64-based PC(AMD)syateminfo
fangde-linux-ubuntux86_64(AMD) uname -a
龙芯麒麟(mips)  mips64(MIPS) uname -a

2、.pro中常用的相关字段总结

变量                                 含义
TARGET  生成目标的名字
DESTDIR  目标输出文件路径
PWD 当前文件(.pro或.pri)所在的路径
OUT_PWDMakefile生成的路径
PRO_FILE_PWDpro项目文件所在的路径
QMAKE_HOST.arch 计算机架构
QMAKE_HOST.os计算机系统
QMAKE_HOST.cpu_count计算机CPU核心数
QMAKE_HOST.name  计算机名
QMAKE_HOST.version 系统版本(数字形式)
QMAKE_HOST.version_string系统版本(字符串形式)
QMAKE_POST_LINK 编译链接后自动执行命令
DEFINES 编译器定义的预处理器宏,类似于gcc -D 选项
INCLUDEPATH包含头文件路径
LIBS  指定要链接到项目中的库

3、.pro中添加模板

#说明 contains(QMAKE_HOST.arch, x86)
#函数原型为contains(variablename, value),如果 variablename 包含 value 则返回成功
#QMAKE_HOST.arch:qmake变量,计算机架构
#x86_64:终端输入 lscpu 可以参看当前计算机架构,x86 是 x86_64,arm64 是 aarch64,或者直接 message($$QMAKE_HOST.arch) 输出到概要信息

CONFIG(debug, debug|release):{              #处理debug
    message("Msg_Debug")
    win32{
        message("win32")
    }else:unix{
        contains(QMAKE_HOST.arch, x86_64){
            message("x86_64")
        }else:contains(QMAKE_HOST.arch, aarch64){
            message("aarch64")
        }else:contains(QMAKE_HOST.arch, mips64){
            message("mips64")
        }
    }
}else:CONFIG(release, debug|release):{    #处理release
    message("Msg_release")
    win32{
        message("win32")
    }else:unix{
        contains(QMAKE_HOST.arch, x86_64){
            message("x86_64")
        }else:contains(QMAKE_HOST.arch, aarch64){
            message("aarch64")
        }else:contains(QMAKE_HOST.arch, mips64){
            message("mips64")
        }
    }
}

4、示例

CONFIG(debug, debug|release):{              #处理debug
    message("Msg_Debug")

    #输出目录
    DESTDIR += $$PWD/../Output/debug

    win32{
        message("win32")

        #依赖库目录
        LIBS += -L$$PWD/ThridPart/Test/ -lTestDLL1
        LIBS += -L$$PWD/ThridPart/Test -lTestDLL2
        LIBS += -L$$PWD/ThridPart/Test -lTestDLL3

        #库文件拷贝
        {   OutputDir = $$replace(DESTDIR, /, \\)

            TargetDll_1 = $$PWD/ThridPart/Test/TestDLL1.dll
            TargetDll_1 = $$replace(TargetDll_1, /, \\)
            QMAKE_PRE_LINK += copy $$TargetDll_1 $$OutputDir &

            TargetDll_2 = $$PWD/ThridPart/Test/TestDLL2.dll
            TargetDll_2 = $$replace(TargetDll_2, /, \\)
            QMAKE_PRE_LINK += copy $$TargetDll_2 $$OutputDir &

            TargetDll_3 = $$PWD/ThridPart/Test/TestDLL3.dll
            TargetDll_3 = $$replace(TargetDll_3, /, \\)
            QMAKE_PRE_LINK += copy $$TargetDll_3 $$OutputDir &
        }
    }else:unix{
        contains(QMAKE_HOST.arch, x86_64){
            message("x86_64")

        }else:contains(QMAKE_HOST.arch, aarch64){
            message("aarch64")

        }else:contains(QMAKE_HOST.arch, mips64){
            message("mips64")

        }
    }
}else:CONFIG(release, debug|release):{    #处理release
    message("Msg_release")

    #输出目录
    DESTDIR += $$PWD/../Output/release

    win32{
        message("win32")

    }else:unix{
        contains(QMAKE_HOST.arch, x86_64){
            message("x86_64")

        }else:contains(QMAKE_HOST.arch, aarch64){
            message("aarch64")

        }else:contains(QMAKE_HOST.arch, mips64){
            message("mips64")

        }
    }
}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值