ubuntu c\c++环境中第三方依赖包的使用

2023-05-16

第三方依赖包的使用需要导入第三方依赖包中的include和lib文件。下面例子中以ffmpeg为例。据我成功尝试之后的有这两种,其他的方法肯定还有,比如直接导入目前的linux环境中,改变量啥的,我没尝试,但下面的方法已经够用了。

一、可以直接使用gcc\g++命令

gcc -o 可执行文件名 代码.c\.cpp -I include路径 -L lib路径 -l 引用的头文件

二、使用eclipse导入,这也是比较方便的,不用每次输入很长的gcc命令

1、新建c\c++项目

              

2、右击项目,选择最后一个properties -> c\c++ General -> Paths and Symbols。然后点击你需要的编译器gun c\c++,再点击add添加include路径。

               

3、添加lib:c\c++ Build -> setting -> GCC C++ Linker -> libraries。现在下面的框里添加lib文件路径,然后在上面框中输入可能用到的头文件引用。

       

4、之后点击右下角的Apply and Close。

5、编译之后可能会报错:/usr/bin/ld: cannot find xxxxx。如果你的依赖包没问题的话,可能是由于找不到.so文件导致的。可以通过运行如下命令,查看.so文件是否存在。

locate libxxx.so

例如:刚导入上面的包后报错:/usr/bin/ld: cannot find -lavcodec。通过允许上面的查询命令,查到在/usr/lib/x86_64-linux-gnu下存在libavcodec.so.57的包,我们新建它的软连接文件,并命名为libavcodec.so文件。

sudo ln -s libavcodec.so.57 libavcodec.so

运行结果如下: 

1、通过允许 ll libav*查看输出结果 

lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavcodec.so.57 -> libavcodec.so.57.107.100
-rw-r--r-- 1 root root 13693976 Jul 16 07:05 libavcodec.so.57.107.100
lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavdevice.so.57 -> libavdevice.so.57.10.100
-rw-r--r-- 1 root root   195384 Jul 16 07:05 libavdevice.so.57.10.100
lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavfilter.so.6 -> libavfilter.so.6.107.100
-rw-r--r-- 1 root root  2814352 Jul 16 07:05 libavfilter.so.6.107.100
lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavformat.so.57 -> libavformat.so.57.83.100
-rw-r--r-- 1 root root  2471576 Jul 16 07:05 libavformat.so.57.83.100
lrwxrwxrwx 1 root root       22 Jul 16 07:05 libavresample.so.3 -> libavresample.so.3.7.0
-rw-r--r-- 1 root root   133112 Jul 16 07:05 libavresample.so.3.7.0
lrwxrwxrwx 1 root root       22 Jul 16 07:05 libavutil.so.55 -> libavutil.so.55.78.100
-rw-r--r-- 1 root root   497688 Jul 16 07:05 libavutil.so.55.78.100

2、新建需要的软连接 

@ubuntu:/usr/lib/x86_64-linux-gnu$ sudo ln -s libavcodec.so.57 libavcodec.so
@ubuntu:/usr/lib/x86_64-linux-gnu$ sudo ln -s libavdevice.so.57 libavdevice.so
@ubuntu:/usr/lib/x86_64-linux-gnu$ sudo ln -s libavfilter.so.6 libavfilter.so
@ubuntu:/usr/lib/x86_64-linux-gnu$ sudo ln -s libavformat.so.57 libavformat.so
@ubuntu:/usr/lib/x86_64-linux-gnu$ sudo ln -s libavutil.so.55 libavutil.so
@ubuntu:/usr/lib/x86_64-linux-gnu$ sudo ln -s libavresample.so libavresample.so
@ubuntu:/usr/lib/x86_64-linux-gnu$ sudo ln -s libswscale.so.4 libswscale.so

3、查看结果 

lrwxrwxrwx 1 root root       16 Oct 18 02:11 libavcodec.so -> libavcodec.so.57
lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavcodec.so.57 -> libavcodec.so.57.107.100
-rw-r--r-- 1 root root 13693976 Jul 16 07:05 libavcodec.so.57.107.100
lrwxrwxrwx 1 root root       17 Oct 18 02:15 libavdevice.so -> libavdevice.so.57
lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavdevice.so.57 -> libavdevice.so.57.10.100
-rw-r--r-- 1 root root   195384 Jul 16 07:05 libavdevice.so.57.10.100
lrwxrwxrwx 1 root root       16 Oct 18 02:16 libavfilter.so -> libavfilter.so.6
lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavfilter.so.6 -> libavfilter.so.6.107.100
-rw-r--r-- 1 root root  2814352 Jul 16 07:05 libavfilter.so.6.107.100
lrwxrwxrwx 1 root root       17 Oct 18 02:17 libavformat.so -> libavformat.so.57
lrwxrwxrwx 1 root root       24 Jul 16 07:05 libavformat.so.57 -> libavformat.so.57.83.100
-rw-r--r-- 1 root root  2471576 Jul 16 07:05 libavformat.so.57.83.100
lrwxrwxrwx 1 root root       16 Oct 18 02:17 libavresample.so -> libavresample.so
lrwxrwxrwx 1 root root       22 Jul 16 07:05 libavresample.so.3 -> libavresample.so.3.7.0
-rw-r--r-- 1 root root   133112 Jul 16 07:05 libavresample.so.3.7.0
lrwxrwxrwx 1 root root       15 Oct 18 02:17 libavutil.so -> libavutil.so.55
lrwxrwxrwx 1 root root       22 Jul 16 07:05 libavutil.so.55 -> libavutil.so.55.78.100
-rw-r--r-- 1 root root   497688 Jul 16 07:05 libavutil.so.55.78.100

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu c\c++环境中第三方依赖包的使用 的相关文章

  • vue实现表格的更多查询功能

    场景一 xff1a 一行足够显示完所有的查询条件 场景二 xff1a 需要多行才能显示完所有的查询条件 1 首先创建一个按钮组件SearchButton lt template gt lt el form inline class 61 3
  • FreeROTS原理学习笔记

    前言 xff1a 这仅是一篇学习笔记记录 xff0c 无指导意义 想详细了解的人 可看CSDN博主 zhzht19861011 的原创文章 FreeROTS系统 xff1a 使用习惯 xff1a 1 一般来说 xff0c 都是利用下载好的例
  • RuntimeError: dataset.make_initializable_iterator is not supported when eager execution is enabled.

    这是由于代码的接口更改 xff0c 无法正常连接数据集 xff0c 即新版本接口变了 需要按照第4章的数据集部分 xff0c 改一下数据集接口
  • 基于Android 的串口工具类

    欢迎使用串口通讯 xff0c 首先说明下我这里使用的是RS485通讯 xff0c 采用的是半双工通讯 xff0c 所以收和发不能同时操作需要发送等待一段时间来接收完数据在发送其他指令了 xff0c 这里顺便在说下RS232 xff0c 它采
  • ROS安装步骤

    ROS xff08 Robot Operating System xff09 起源于2007年斯坦福大学人工智能实验室与WillowGarage公司的个人机器人项目 xff0c 其后被Willow Garage公司开源和发展 xff0c 目
  • ros对应不同的ubuntu版本

    ros对应不同的ubuntu版本有不同的版本名字 xff1a ubuntu16 04对应ros kinetic xff1b ubuntu18 04对应ros melodic xff1b ubuntu20 04对应ros noetic 在Ub
  • ubuntu20.04安装 gym-gazebo

    官网流程安装 xff1a https github com erlerobot gym gazebo 一 环境与依赖 1 基本环境 xff1a ROS NoeticGazebo11 11 0 2 ROS相关依赖 xff1a sudo apt
  • 【无标题】Realsense ROS驱动安装以及报错处理

    参考官网 xff1a https github com IntelRealSense realsense ros 1 命令行安装 xff1a 这种方式比较简单 xff0c 没有报错 需要注意的是安装位置需要自己找 xff0c 后续修改lau
  • FAQ问答项目代码细节————BM25+BERT句子相似度

    一 建立FAQ库 一个问题三个形式 xff0c 数据增强之后问题和答案一一对应 xff0c 19MB的ask txt xff0c 答案保存在answer0 424中 xff0c 每个文件1000个回答 节省处理时间 二 BM25初始化 目的
  • 摄星智能电话面试题

    1 NER中的维度变换 xff0c BiLSTM中的层之间变换 43 CRF的输入输出原理 xff0c 维特比解码 xff1b https zhuanlan zhihu com p 97676647 https blog csdn net
  • 七月在线NLP笔试面试题知识点记录

    1 Levenshtein https www jb51 net article 98449 htm 2 LDA主题模型 https blog csdn net v july v article details 41209515 3 Les
  • python3代码加密

    Python代码加密步骤 1 准备文件 main py为要加密的主脚本 test py为测试脚本 运行测试脚本测试 encryption py为加密脚本 运行加密脚本 运行结果如下 xff1a 其中红框部分为加密文件 更换主脚本 将main
  • 文件打开方式关联错误解决方法

    1 首先更改默认打开方式 xff0c 有如下方法 xff1a 开始 gt 控制面板 gt 程序 gt 默认程序 gt 将文件类型或协议与程序关联 gt 找到相应文件扩展名 gt 点击更改程序 gt 浏览 gt 找到相应程序的安装位置 gt
  • kenLM 在windows上的Cygwin64模拟linux安装详解

    欲买桂花同载酒 前前后后搞了将近三天 xff0c 就为了使用kenlm训练一个n gram语言模型做纠错用 xff0c 一直在安装kenlm xff0c 终于安装成功了 xff0c 真是刺激 xff01 xff01 xff01 没有用公司的
  • SVN+IEDA实战

    工作要接触JAVA项目 xff0c 看来是时候增加一门语言能力了 xff0c 在以前的多轮对话项目上做二次开发 xff0c 公司希望用python实现全部过程 xff0c 原项目使用java和scala开发 公司用SVN xff0c 以前用
  • MySQL学习总结(全)

    一 数据库操作 1 连接数据库 xff1a mysql u root p 2 查看已经有的数据库 xff1a show databases 3 新建数据库 xff1a create database database name 4 删除数据
  • Anomaly Detection(异常检测)的原理及最新的技术应用(李宏毅视频课整理和总结)

    文章目录 0 前言1 Introduction1 1 Problem Formulation1 2 Base Idea 2 With Classifier2 1 Base Method2 2 Evaluation2 3 More2 3 1
  • NoVNC—以Web方式交付VNC远程连接

    文章目录 一 noVNC是什么二 CentOS 7 安装novnc1 环境2 安装配置3 一键安装脚本 三 Windows 安装novnc1 环境2 安装utralNVC server3 安装Node js4 安装noVNC和websock
  • ALTERA系列的FPGA通过RS232串口在线升级

    ARM系列的芯片 xff08 例如STM32系列 xff09 可以通过YMODEM协议实现在线升级 xff0c 在芯片中写入BOOT程序 APP程序就可以实现 那FPGA可以这样做吗 xff0c 答案是可以的 要想搞清楚流程就必须了解FPG
  • 【linux】正点原子linux教程学习

    最近看了正点原子的linux教学视频 xff0c 感觉讲的挺不错 xff0c 简单来整理一下 xff0c 对此有个印象 一 裸机代码 视频教程中讲了nxp的imx6ull的soc xff08 原来的freescale下面的产品 xff0c

随机推荐