版本号确实有点诡异,我一般这么做的,先在pro或pri文件里定义一个函数qtLibName,用这个函数来生成-l后面正确的名字
defineReplace(qtLibName) {
    #TEMPLATE += fakelib
    #LIB_FULLNAME = $$qtLibraryTarget($$1)
    #TEMPLATE -= fakelib
    unset(LIBRARY_NAME)
    LIBRARY_NAME = $$1
    CONFIG(debug, debug|release) {
        !debug_and_release|build_pass {
            mac:RET = $$member(LIBRARY_NAME, 0)_debug
            else:win32:RET = $$member(LIBRARY_NAME, 0)d
        }
    }
    isEmpty(RET):RET = $$LIBRARY_NAME
    !win32: return($$RET)
 
    isEmpty(2): VERSION_EXT = $$VERSION
    else: VERSION_EXT = $$2
    !isEmpty(VERSION_EXT) {
        VERSION_EXT = $$section(VERSION_EXT, ., 0, 0)
        isEqual(VERSION_EXT, 0):unset(VERSION_EXT)
    }
    RET = $${RET}$${VERSION_EXT}
    unset(VERSION_EXT)
    return($$RET)
}
 
win下若静态链接,-l$$qtLibName(api)
动态链接: -l$$qtLibName(api, 0.1.1)
linux下:-l$$qtLibName(api)