linux下如何调用opencv库生成一些.a与.o文件

首先先简介下linux系统下程序的库函数分为三种类型;

1.静态函数库:在程序执行前加入到目标程序中;

2.共享函数库:在程序启动的时候加载到程序中,被不同程序共享;

3.动态函数库:在程序运行的任何时候动态的加载

 

linux 下的.o文件是目标文件相当于windows的obj文件;   

             .so文件是共享库相当于windows的shared object;

             .a文件是静态库由好多个.o文件合在一起,用于静态链接;

             .la为libtool自动生成的一些共享库;

 如何生成所需要的.a与.so文件的具体过程:

 

为了防止报错统一采用g++而不用gcc;g++是C++编译器,而gcc是c编译器大部分情况下没有区分,但是在调用opencv会有区别;

第一步:调用已经编写好的XX.cpp生成.so文件;

g++ 空格 XX.cpp 空格-L./lib 空格 -lopencv_core 空格-lopencv_highgui空格-lopencv_imgproc空格-fPIC空格-shared空格-o空格libcp.so     生成可以用的so文件 

第二步:通过调用生成的.so文件

g++ 空格 -o 空格 test 空格 test.cpp 空格 -L. 空格 -lcp 空格 -lopencv_core 空格 -lopencv_highgui 空格 -lopencv_imgproc;   生成可以调用的test文件。

第三步:生成的.s0文件提示找不到文件,说明你的环境变量没有配置好;

export 空格 LD_LIBRARY_PATH=/home/zx/cp_location_160708/:$LD_LIBRARY_PATH;

通过调用opencv库生成.a文件

第一步:通过编译文件生成.o文件

g++ 空格 -c hello.c                                                生成hello.o文件;

第二步:通过生成的.o文件变成.a文件

ar cr liblocation_cp.a hello.o                                 调用hello.o生成

第三步调用生成的.a文件生成运行文件

g++空格-o空格XX 空格XX.cpp 空格  /home/zx/cp_location_160708/libcp.a 空格 `Pkg-config 空格 --libs 空格 --cflags 空格 opencv`

 

原文链接: https://www.cnblogs.com/zvmxvm1991/p/5841933.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    linux下如何调用opencv库生成一些.a与.o文件

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/240056

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午8:23
下一篇 2023年2月13日 下午8:26

相关推荐