zoukankan      html  css  js  c++  java
  • ubuntu:undefined reference to `snd_pcm_open'

    这几天在做一个局域网的对讲机和广播系统。

    需要用到alsa的库来进行音频采集和播放。

    但是在编译程序的时候有个比较奇怪的问题。

    undefined reference to `snd_pcm_open'

    一般来说,这肯定是程序链接的时候,找不到链接库。

    可我明明在gcc的参数里面加了 -lasound 选项。

    后来发现,原来-lasound这个参数的位置会影响到编译的结果。

    不能通过的写法:gcc -lasound -o main main.o

    可以编译通过的写法:gcc -o main main.o -lasound

    进一步查资料发现:

    gcc中库的链接顺序是从右往左进行,所以要把最基础实现的库放在最后,这样左边的lib就可以调用右边的lib中的代码。同时,当一个函数的实现代码在多个lib都存在时,最左边的lib代码最后link,所以也将最终保存下来。

    (由于时间关系我没有再深入了解,更多的资料请自行查阅)

  • 相关阅读:
    Python内置函数(33)——any
    Python内置函数(32)——all
    Mybatis相关SQL操作总结
    mybatis与oracle使用总结
    J2EE分布式服务基础之RPC
    J2EE企业级应用架构
    Dubbo模块介绍
    Dubbo简介
    Http之ContentType
    JSONP解决跨域方案
  • 原文地址:https://www.cnblogs.com/Ph-one/p/6801891.html
Copyright © 2011-2022 走看看