库依赖 与 gcc

函数库是一些头文集( .h ) 文件和库文件( .so 或 .a ) 的集合。

Linux下大多函数默认将头文件放在 /usr/include/目录下,

                                           库文件放在/usr/lib/目录下,

gcc采用搜索目录的办法来查找所需要的文件,

-I 选项可向gcc的头文件搜索路径中添加新的目录。如在/home/david/include/目录下有编译时所需要的头文件,为让gcc顺利找到它们,可:

gcc  david.c  -I  /home/davide/include  -o david

-L选项可向gcc的库文件搜索路径中添加新的目录。如在/home/david/lib/目录下有连接时所需要的库文件libdavid.so, 为让gcc顺利找到它们,可:

gcc  david.c  -L  /home/david/lib  -ldavid  -o   david 

-l选项,指示gcc连接库文件david.so。 Linux下的库文件在命名时有一个约定,那就是应该以 lib 三个字母开头。 由于所有的库文件都遵循了同样的规范,因此在用-l选项指定连接的库文件时可以省去lib三个字母。也就是说

gcc  在对 -l  david 进行处理时,会自动连接名为 libdavid.so  的文件。


Linux 库文件分为两大类: 动态链接库( .so ) 和静态链接库( .a ) 

两者的差别在于程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。

默认情况下,gcc在链接时优先使用动态链接库,只有在动态链接库不存在时才考虑使用静态链接库。

如果需要的话,可在编译时加上 -static 选项, 强制使用静态链接库。如:在/home/david/lib/目录下有链接时

所需要的库文件 libfoo.so 和 libfoo.a , 为让gcc在链接时只用到静态链接库,可使用命令:

gcc foo.c  -L  /home/davide/lib  -static  -lfoo   -o  david    


------摘自 李玉波等, 《Linux C 编程》, 清华大学出版社

-------------------------------------------------------------------------------------

 g++  myread.cpp -o myread -I /usr/local/include -L /usr/local/lib -lopencv_imgproc -lopencv_core -lopencv_highgui

For openCV 3.X you need to add library imgcodecs to project, you need to append "-lopencv_imgcodecs"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值