最近在移植其他平台的一些库到qt中,遇到了链接库找不到的问题。
在库的数量相对比较少的情况下,可以通过单个引入,到.pro文件中,但是如果数量太多,引入到里面可能会比较乱,因此可以自己创建.pri文件,将库的路径和头文件指明,pri文件可以如以下方式指明
INCLUDEPATH += $$PWD/sdk/include \
$$PWD/sdk/include/glib-2.0 \
$$PWD/sdk/include/rkaiq/algos \
$$PWD/sdk/include/rkaiq/common \
$$PWD/sdk/include/rkaiq/iq_parser \
$$PWD/sdk/include/rkaiq/uAPI \
$$PWD/sdk/include/rkaiq/xcore \
$$PWD/sdk/include/groupsock \
LIBS += -L$$PWD/sdk/lib \
-L$$PWD/sdk/lib/alsa-lib \
-L$$PWD/sdk/lib/bluetooth/plugins \
-L$$PWD/sdk/lib/libv4l \
-L$$PWD/sdk/lib/libv4l/plugins \
-L$$PWD/sdk/lib/npu/rknn/plugins \
显示部分作为参考
$$PWD是指的当前程序运行的路径,在LIB中,如果引入的是放库的目录,前面要加-L,如果具体到库名,使用-l,然后在.pro文件中加入 include(xx.pri),就可以完成引用了。
但是,到了这一步后,你就会发现,在使用库的过程中,一些库连接上了,一些库编译器提示没有链接上。因此,还要在 指定到具体的库名
例如:
LIBS += -L$$PWD/sdk/lib \
-L$$PWD/sdk/lib/alsa-lib \
-L$$PWD/sdk/lib/bluetooth/plugins \
-L$$PWD/sdk/lib/libv4l \
-L$$PWD/sdk/lib/libv4l/plugins \
-L$$PWD/sdk/lib/npu/rknn/plugins \
-lrknn_runtime -lrknn_api -lneuralnetworks -lRKAP_ANR -lRKAP_Common -lArchModelSw \
-lNNArchPerf -lOpenVX -lOpenVXU \
-lVSC -lGAL -lNNGPUBinary -lNNVXCBinary -lCLC -lrockchip_vpu -lrockchip_mpp \
-ldrm_rockchip -lrkisp_api \
-lrkaiq -lv4l2 -lv4l2rds -lv4lconvert -lcrypto -lssl -lz -lasound -lpng16 -lfreetype \
这样,就不会找不到库了